Objective-C运行时调用OS X上的函数百分比是多少?

时间:2012-08-13 02:07:42

标签: ios macos runtime objective-c-runtime code-statistics

我想更加深入地了解任何语言中运行时需要调用的频率。在这种情况下,我特别感兴趣的是:

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

2 个答案:

答案 0 :(得分:2)

当然这取决于你的应用程序,但总的来说答案是“很多”。就像,一个完整的怪物。

如果你真的想看数字,我建议使用dtrace记录所有运行时函数。 This blog entry谈到如何做这样的事情。

答案 1 :(得分:1)

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

每次发送消息时,实际的消息发送都是由运行时函数完成的(这实际上是几乎任何客观C程序中最常被称为运行时函数的函数)。

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

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

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

Objc运行时包含C运行时,因此涉及C运行时函数的任何事情(例如,通过值传递大型结构或返回它)实际上是调用运行时。

等等。