进程内性能评测的库?(Linux上的英特尔性能计数器)



我想通过读取路径上不同点的性能计数器来评测应用程序的critical路径

我遇到了libperf,它提供了一个相当整洁的C api。然而,上一次活动是在3年前。

我也知道PAPI。这一点正在积极发展之中。

  • 还有其他图书馆我应该知道吗
  • 有人能对使用其中一种或另一种提供任何见解吗
  • 有将这些集成到应用程序代码中的教程/介绍吗

我同时使用了PAPI(在Solaris上)和perf(在Linux上),发现记录整个程序运行并使用"perf-annotte"查看关键路径的运行情况要容易得多,而不是只测量关键路径。这是一种不同的方法,但对我来说效果很好。

此外,正如有人在评论中提到的那样,如果你是基于x86的,那么还有vTune。我自己从来没有用过。

有几个选项,其中包括:

  • JEvents
  • libpfc
  • 英特尔PCM
  • likwid
  • 直接使用perf_event_open

我将在回答一个相关问题时更详细地介绍这些问题。

看看http://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization?page=8

不过,VTune是专有的,如果您愿意,它可以达到目的。试试它的30天试用。

perfmon和perfctr可以用于分析程序的各个部分,但必须包含在代码本身中。

最新更新