在mac os x上分析c ++

时间:2012-07-12 05:42:43

标签: macos profiling

我正在尝试在我的mac(os x Lion)上分析一些c ++代码,但我找不到任何有用的东西。我正在寻找一个能够告诉我什么函数占用我的CPU时间的探查器(类似于matlab探查器)。

这是我试过的

  • gprof的。这是我在我的linux机器上使用的,但它只是在我的mac上给我空输出(显然是一个已知问题)
  • 仪器。我不能为我的生活弄清楚如何在我编译的二进制文件中分析任何内容。我也找不到任何有用的教程。
  • (其他搜索显示Shark,不再可用,Valgrind是记忆)。

非常感谢帮助!

3 个答案:

答案 0 :(得分:96)

仪器是使用的工具。对仪器的完整解释超出了本答案的范围,但这是一个快速入门指南:

  1. Open Instruments。 1
  2. 选择“Time Profiler”模板。
  3. 在“目标”下拉菜单中选择您的应用程序。 2
  4. 点击红色圆圈(“记录”)按钮开始运行应用程序。
  5. 如果适用,请在您的应用程序中执行一些您需要配置文件的内容。
  6. 再次按下录制按钮以停止录制。
  7. 使用Instruments中的工具分析您的结果。
  8. 在可用的工具中,最常用的工具是:

    • 使用公开箭头扩展调用树
    • 单击功能名称上带圆圈的箭头以将其聚焦
    • 双击某个功能以查看相关的来源
    • 左侧的“反转呼叫树”复选框

    1 打开乐器的一种简单方法是使用Spotlight:只需点击任务栏右上角的放大镜(时钟旁边),然后输入“乐器”

    2 点击“选择目标...”并导航到可执行文件的路径。

答案 1 :(得分:5)

仪器确实是正确的答案,但如果您无法弄清楚如何使用它,那么另一个选项是内置的Activity Monitor应用程序中的分析器。在Activity Monitor中,您可以获取有关任何正在运行的进程的信息,并且有一个按钮可以对其执行进行一段时间的采样。您必须启动程序,切换到活动监视器,找到该过程,然后对其进行采样。

此外,您只需在调试器中运行程序并手动暂停六次左右并在这些时间注意调用堆栈,就可以执行“穷人的分析”。它非常简单,但作为大部分节目的首次通过,效果出奇的好。

答案 2 :(得分:5)

仪器是使用的工具。 要克服空白痕迹的问题,请确保从XCode中打开Instruments:

Xcode > Open Developer Tool > Instruments

如果您在上次更新XCode之前从固定到扩展坞的旧仪器图标打开了仪器,它将为您提供空白痕迹。