macos - 在 mac os x 上分析 c++

标签 macos profiling

我正在尝试在我的 mac (os x Lion) 上分析一些 C++ 代码,但我找不到任何有用的东西。我正在寻找一个分析器,它可以告诉我哪些函数占用了我的 cpu 时间(类似于 matlab 分析器)。

这是我尝试过的

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

最佳答案

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

  1. 打开仪器。1
  2. 选择“时间分析器”模板。
  3. 在“目标”下拉菜单中选择您的应用。2
  4. 点击红色圆圈(“记录”)按钮开始运行您的应用程序。
  5. 如果适用,请在您的应用中执行一些需要分析的操作。
  6. 再次点击录制按钮即可停止录制。
  7. 使用 Instruments 中的工具来分析您的结果。

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

  • 使用展开箭头展开调用树
  • 单击函数名称上的圆圈箭头将其聚焦
  • 双击函数可查看关联的源
  • 左侧的“反转调用树”复选框

您还可以在命令行上启动instruments调用:

instruments -l 30000 -t Time\ Profiler -p 5773

参见instructions .

<小时/>

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

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

关于macos - 在 mac os x 上分析 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11445619/

相关文章:

java - 如何正确计时用 Java Spring MVC 编写的配置文件 API?

c++ - Mac 的 McCabe 风格的功能复杂性测试

macos - 使用 hadoop-0.19.1 在我的 osx 上运行示例应用程序时出现 java.io.IOException : Job failed!

macos - 如何在 OS X 上创建 netcat 中继?

html - 在 Mac 版 Chrome 中丢失悬停样式

cuda - 如何观察可执行文件的一部分的 CUDA 事件和指标(例如,仅在内核执行期间)?

node.js - Dtrace 没有为 NodeJS 收集任何数据

macos - 无法 brew 链接qt

javascript - 有什么方法可以防止 Safari 边缘滑动(例如在 iPhone 上)?

c++ - 什么是 _dl_lookup_symbol_x ? - C++ 分析