我正在尝试在我的 mac (os x Lion) 上分析一些 C++ 代码,但我找不到任何有用的东西。我正在寻找一个分析器,它可以告诉我哪些函数占用了我的 cpu 时间(类似于 matlab 分析器)。
这是我尝试过的
仪器是使用的工具。仪器的完整解释超出了本答案的范围,但这里有一个快速入门指南:
在可用的工具中,最常用的工具是:
您还可以在命令行上启动
instruments
的调用:
instruments -l 30000 -t Time\ Profiler -p 5773
参见说明。
1 打开 Instruments 的一种简单方法是使用 Spotlight:只需单击任务栏右上角(时钟旁边)的放大镜,然后输入“Instruments”。
2 单击“选择目标...”并导航到可执行文件的路径。
仪器是使用的工具。 要解决空白痕迹的问题,请确保从 XCode 中打开 Instruments:
Xcode > Open Developer Tool > Instruments
如果您从上次更新 XCode 之前固定到扩展坞的旧仪器图标打开仪器,它将给您留下空白痕迹。
仪器确实是正确的答案,但如果您不知道如何使用它,那么另一个选择是内置活动监视器应用程序中的分析器。在活动监视器中,您可以获得有关任何正在运行的进程的信息,并且有一个按钮可以对其执行进行一段时间的采样。您必须启动程序,切换到活动监视器,找到进程,然后对其进行采样。
此外,您只需在调试器中运行程序并手动暂停六次左右并记下当时的调用堆栈即可进行“穷人的分析”。它非常简单,但作为大部分程序的第一步,它的工作效果出人意料地好。
还有一个命令行
sample
程序,可以像其他程序一样对调用堆栈进行采样。
2024年,
“instruments”现已弃用,取而代之的是“xcrun xctrace”。
因此,要在 MacOS 上分析您的 C++ 可执行文件,如下所示:
-g
。xctrace record --output . --template "Time Profiler" --time-limit 5s --launch -- <your_excutable_file> <excutable_args>
上一个命令将在当前工作目录中生成一个
.trace
文件,
打开文件管理器并双击查看调用图。
注意:如需了解更多信息,请在终端中输入
xctrace help record
。