使用XCode Instruments Time Profiler并启用优化

时间:2012-06-26 23:51:04

标签: iphone ios xcode profiling instruments

我正在使用C ++进行一些数字处理,并且在我的Debug构建中使用-Os优化时,我发现CPU%使用率存在巨大差异。因此,我想在启用优化的情况下对我的代码进行分析,这样我就不会浪费时间来优化编译器已经优化的代码。

当我尝试使用-Os优化配置文件时,我无法使用Instruments来表示我的代码(即使我手动指定了.dSYM文件的位置)。它甚至不会显示我没有模板化或内联的顶级C ++成员函数。

当我指定默认的-O0优化级别时,我可以使它符号化。

那么,是否可以在启用优化的情况下进行配置文件?如果是这样,那么让它起作用的诀窍是什么?

我正在使用XCode 4.3.3。

1 个答案:

答案 0 :(得分:2)

使用-Os时,Time Profiler确实具有象征意义。优化器完成了它的工作,我的C ++ DSP代码内联并加速到了探测器不会在我让它运行的短时间内对其中任何一个进行采样的程度。我在调用树中看到的只是系统调用。

当我尝试运行探查器的时间更长时,探查器会抓住我的DSP代码。它只显示了我的顶级DSP函数,由一些NSOperationQueue处理程序调用。下面的其余部分似乎都是内联的。

当我使用-O2编译时,我获得了更多有用的结果。我的更多DSP子程序保持不变(而不是内联),因此我能够更好地衡量我的DSP算法花费时间的位置。但所有这一切都没有实际意义,因为现在我可以看到应用程序在内务系统调用中花费的时间远远超过我的DSP代码。