我在 iPhone 的音频编程方面取得了一些进展。现在我正在做一些性能调整,试图看看我是否可以从这台小机器中挤出更多。运行 Shark,我看到我的 cpu 能力的很大一部分 (16%) 被 objc_msgSend 消耗掉了。我知道我可以通过存储函数指针 (IMP) 而不是使用 [object message] 表示法调用它们来加快速度。但是,如果我要经历所有这些麻烦,我想知道使用 C++ 是否会更好。
对此有什么想法吗?
最佳答案
Objective C 对于 DSP/音频编程来说绝对足够快,因为 Objective C 是 C 的超集。您不需要(也不应该)将所有内容都作为消息。在性能至关重要的地方,使用纯 C 函数调用(或使用内联汇编,如果有硬件功能,您可以通过这种方式利用)。如果性能不是关键,并且您的应用程序可以从消息间接的功能中受益,请使用方括号。
例如,OS X 上的 Accelerate 框架是一个出色的高性能 Objective C 库。它只使用标准的 C99 函数调用,您可以从 Objective C 代码中调用它们,而无需任何包装或间接。
关于iphone - Objective C 是否足够快用于 DSP/音频编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761388/