在mac os上分析c ++ x

我试图分析一些c + +代码在我的mac(操作系统x狮子),我一直没能find有用的东西。 我正在寻找一个分析器,告诉我哪些函数正在占用我的cpu时间(类似于matlab分析器)。

这是我所尝试过的

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

真的很感谢帮助!

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

  1. 打开仪器。 1
  2. select“时间分析器”模板。
  3. 在“目标”下拉菜单中select您的应用程序。 2
  4. 点击红色圆圈(“logging”)button开始你的应用程序运行。
  5. 如果适用,在你的应用程序中做一些你需要的资料。
  6. 再次点击录制button停止录制。
  7. 使用仪器中的工具分析结果。

在可用的工具中,那些最常用的工具是:

  • 使用公开箭头展开呼叫树
  • 单击函数名称上的圆圈箭头以将其聚焦
  • 双击一个function来查看关联的源
  • 左侧的“反向调用树”checkbox

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

2单击“select目标…”并导航到可执行文件的path。

仪器确实是正确的答案,但如果你不知道如何使用它,那么另一个select是在内置的Activity Monitor应用程序中的分析器。 在活动监视器中,您可以获取任何正在运行的进程的信息,并且有一个button可以在一段时间内对其执行进行采样 您必须启动您的程序,切换到活动监视器,查找过程,然后对其进行采样。

另外你可以简单地通过在debugging器中运行程序并且手动暂停半打左右并且在那个时候注意到调用堆栈来做“穷人分析”。 这非常简单,但它作为一个很大的一部分程序的第一遍令人惊讶的作品。

仪器是使用的工具。 为了解决空白曲线的问题,请确保从XCode中打开乐器:

 Xcode > Open Developer Tool > Instruments 

如果您从上次更新XCode之前固定到docker的旧乐器图标中打开乐器,则会给您留下空白的痕迹。