C++ 剖析C++;使用仪器在iOS设备上运行的代码

C++ 剖析C++;使用仪器在iOS设备上运行的代码,c++,ios,profiling,instruments,C++,Ios,Profiling,Instruments,我试图用仪器来分析设备上运行的一些信号处理代码。代码是用C++编写的。下面是几秒钟的输出 很明显,对powf的调用占用了大部分CPU时间,但是,我找不到如何确定对powf的调用是我代码中最大的违规者。我发誓,当我使用shark时,在源代码中很容易获得电话号码。我能从仪器上得到的只是机器代码的废话 展开powf三角形可以得到以下结果 似乎包含对powf调用的代码是传递给CoreAudio的回调函数的一部分。Instruments似乎无法对回调的调用链进行符号化,因此您只能在代码中看到原始地址。可

我试图用仪器来分析设备上运行的一些信号处理代码。代码是用C++编写的。下面是几秒钟的输出

很明显,对powf的调用占用了大部分CPU时间,但是,我找不到如何确定对powf的调用是我代码中最大的违规者。我发誓,当我使用shark时,在源代码中很容易获得电话号码。我能从仪器上得到的只是机器代码的废话

展开
powf
三角形可以得到以下结果


似乎包含对
powf
调用的代码是传递给CoreAudio的回调函数的一部分。Instruments似乎无法对回调的调用链进行符号化,因此您只能在代码中看到原始地址。可能可以使用合适的工具(例如,
otool
,或类似工具)来识别这些地址,但从长远来看,更好的策略是实现一个测试工具,该工具使用虚拟数据在循环中调用回调代码-这很可能在将来的调试和分析活动中使用它时得到回报。请注意,为了方便起见,您可以将测试工具构建为Mac OS X可执行文件,用于评测/调试,因为两种平台上的bug和性能瓶颈很可能相似,至少是一级近似值。

似乎包含对
powf
调用的代码是传递给CoreAudio的回调函数的一部分。Instruments似乎无法对回调的调用链进行符号化,因此您只能在代码中看到原始地址。可能可以使用合适的工具(例如,
otool
,或类似工具)来识别这些地址,但从长远来看,更好的策略是实现一个测试工具,该工具使用虚拟数据在循环中调用回调代码-这很可能在将来的调试和分析活动中使用它时得到回报。请注意,为了方便起见,您可以将测试工具构建为Mac OS X可执行文件,用于评测/调试,因为两种平台上的bug和性能瓶颈很可能相似,至少是一个近似值。

单击powf旁边的“公开”三角形以查看调用者。只需列出大量嵌套的无意义内存地址列表,听起来就像你至少有些代码(可能是库)没有符号一样?我所有的DSP代码都是用普通的旧STLSure编写的,但你是如何构建代码的?有图书馆吗?库中有符号吗?或者你正在剥离它吗?单击powf旁边的“公开三角形”以查看调用者。只需列出大量无意义的内存地址嵌套列表,听起来就像你至少有些代码(可能是库)没有符号一样?我所有的DSP代码都是用简单的旧STLSure编写的,但你是如何构建代码的?有图书馆吗?图书馆里有符号吗?或者你正在剥离它?