iOS:调用Objective-C方法的处理开销是多少?

iOS:调用Objective-C方法的处理开销是多少?,第1张

概述我正在写一些实时音频处理代码,它将在音频单元的渲染回调中执行. 该线程处于系统识别的最高优先级. Apple指示最小化此调用中正在进行的处理量.他们的一个建议是避免使用Objective-C方法调用. 但为什么? 调用Objective-C方法时会发生什么?什么是实际开销? Objective-C方法解析是动态的.在其他语言(如C或C)中,函数调用在编译时设置,实质上是跳转到包含该函数的地址.但是 我正在写一些实时音频处理代码,它将在音频单元的渲染回调中执行.

该线程处于系统识别的最高优先级.

Apple指示最小化此调用中正在进行的处理量.他们的一个建议是避免使用Objective-C方法调用.

但为什么?

调用Objective-C方法时会发生什么?什么是实际开销?

解决方法 Objective-C方法解析是动态的.在其他语言(如C或C)中,函数调用在编译时设置,实质上是跳转到包含该函数的地址.但是,在Objective-C中,方法调用实现为“发送消息”,这些消息不能以相同的方式工作.有一个查找过程而不是硬编码跳转.

此查找过程作为与定位要运行的方法的地址相关联的开销.它已经过优化,但对于某些类型的代码,开销会导致性能问题.

如果您对其他细节感兴趣,Mike Ash会给出关于Objective-C消息传递的内容的great writeup.

总结

以上是内存溢出为你收集整理的iOS:调用Objective-C方法的处理开销是多少?全部内容,希望文章能够帮你解决iOS:调用Objective-C方法的处理开销是多少?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存