-1

我想更深入地了解任何需要一个语言的运行时被调用的频率。在这种情况下,我特别想知道:

在 OS X 或 iOS 系统上在任何给定的秒内执行的所有函数调用中(当然需要近似值)其中有多少是 Objective-C 运行时函数(即由运行时定义的函数)?

4

2 回答 2

2

当然,这取决于您的应用程序,但总的来说,答案是“很多”。就像,一大堆。

如果您真的想查看数字,我建议您使用 dtrace 在调用时记录所有运行时函数。 这个博客条目讨论了如何做这样的事情。

于 2012-08-13T02:17:15.523 回答
1

很多。这里只是几个例子。

每次发送消息时,实际的消息发送都是由运行时函数完成的(这实际上是几乎所有目标 C 程序中调用最多的运行时函数)。

NSObject类和协议不是标准库的一部分,而是运行时的一部分,因此任何最终执行到默认NSObject实现的方法实际上都是在执行运行时代码。

每次执行默认属性访问器(读取或写入)时,这都是运行时的一部分。

如果您使用 ARC,则每次访问弱引用(用于读取或写入)时,它都是运行时函数。

Objc 运行时包括 C 运行时,因此任何涉及 C 运行时函数(例如按值传递或返回大型结构)实际上都是调用运行时。

和更多。

于 2012-08-13T03:05:16.020 回答