在没有工具

时间:2015-09-12 07:57:07

标签: macos profiling instruments

在Xcode的Instruments中,有一个名为Counters的工具,它暴露了CPU提供的低级计数器信息,例如执行的指令数或缓存未命中数:

screenshot of Counters tool in Instruments

这类似于Linux 2.6.32中引入的Linux系统调用perf_event_open。在Linux上,我可以使用perf_event_open然后在我感兴趣的代码部分周围开始/停止分析。我想在OS X上记录相同类型的统计数据:计算指令(等)某段代码需要,并以自动方式获得结果。 (我不想使用Instruments GUI来分析数据。)

是否有任何API允许这样做(例如:使用dtrace或类似的)?从一些搜索来看,它听起来像私人AppleProfileFamily.framework可能有必要的钩子,但目前还不清楚如何链接或使用它。

1 个答案:

答案 0 :(得分:1)

在GNU / Linux中,我使用Intel的PCM来监控CPU利用率。我不确定这是否适用于OSX,但据我所知,源代码包括MacMSRDriver目录。我没有任何OSX设备,无论如何都不测试它。

如果在您的设备上编译此源,请运行:

pcm.x -r -- your_program your_program_parameter

或者如果您想进行高级分析,请使用pcm-core.x,或者您可以根据pcm-core.cpp构建自己的代码