我想更深入地了解任何需要一个语言的运行时被调用的频率。在这种情况下,我特别想知道:
在 OS X 或 iOS 系统上在任何给定的秒内执行的所有函数调用中(当然需要近似值)其中有多少是 Objective-C 运行时函数(即由运行时定义的函数)?
我想更深入地了解任何需要一个语言的运行时被调用的频率。在这种情况下,我特别想知道:
在 OS X 或 iOS 系统上在任何给定的秒内执行的所有函数调用中(当然需要近似值)其中有多少是 Objective-C 运行时函数(即由运行时定义的函数)?
当然,这取决于您的应用程序,但总的来说,答案是“很多”。就像,一大堆。
如果您真的想查看数字,我建议您使用 dtrace 在调用时记录所有运行时函数。 这个博客条目讨论了如何做这样的事情。
很多。这里只是几个例子。
每次发送消息时,实际的消息发送都是由运行时函数完成的(这实际上是几乎所有目标 C 程序中调用最多的运行时函数)。
NSObject
类和协议不是标准库的一部分,而是运行时的一部分,因此任何最终执行到默认NSObject
实现的方法实际上都是在执行运行时代码。
每次执行默认属性访问器(读取或写入)时,这都是运行时的一部分。
如果您使用 ARC,则每次访问弱引用(用于读取或写入)时,它都是运行时函数。
Objc 运行时包括 C 运行时,因此任何涉及 C 运行时函数(例如按值传递或返回大型结构)实际上都是调用运行时。
和更多。