在没有仪器的OS X上logging性能监视器计数器(PM事件)的值

在Xcode的仪器中,有一个称为Counters的工具,用于显示CPU提供的低级计数器信息,例如执行的指令数量或caching未命中次数:

仪器中Counters工具的截图

这与Linux 2.6.32中引入的Linux系统调用perf_event_open类似。 在Linux上,我可以使用perf_event_open然后在我感兴趣的代码段中开始/停止分析。我想在OS X上logging相同types的统计信息:计算指令(等)的代码需要,并以自动化的方式获得结果。 (我不想使用仪器GUI来分析数据。)

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

在GNU / Linux中,我使用Intel的PCM来监视CPU利用率。 我不确定这是否在OSX上正常工作,但据我所知,源代码包括MacMSRDriver目录。 我没有任何OSX设备,从来没有testing过它。

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

pcm.x -r -- your_program your_program_parameter

或者如果您需要高级分析,请改用pcm-core.x或者您可以基于pcm-core.cpp构build您自己的代码