【问题标题】:Libraries for inprocess perf profiling? (Intel performance counters on Linux)用于进程内性能分析的库? (Linux 上的 Intel 性能计数器)
【发布时间】:2013-07-23 05:18:16
【问题描述】:

我想通过读取路径上各个点的性能计数器来分析应用程序的关键路径

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

我也知道PAPI。这正在积极开发中。

  • 还有其他我应该注意的库吗?
  • 谁能提供有关使用其中一种方法的任何见解?
  • 任何将这些集成到应用程序代码中的教程/介绍?

【问题讨论】:

  • 你看过 valgrind 吗?
  • @n.m.是的,但我希望能够在生产中运行它
  • 我不确定为什么 valgrind 在这方面不同于任何其他分析器,但无论如何。 Yiu 提到了英特尔的性能计数器。你是说vtune吗?它存在于 Linux 上。

标签: linux performance perf


【解决方案1】:

我使用过 PAPI(在 Solaris 上)和 perf(在 Linux 上),发现记录整个程序运行并使用“perf-annotate”来查看关键路径的运行情况要比尝试只测量关键路径。这是一种不同的方法,但对我来说效果很好。

另外,正如 cmets 上有人提到的,如果您是基于 x86 的,还有 vTune。我自己从来没用过。

【讨论】:

    【解决方案2】:

    有几个选项,其中:

    我会在answer to a related question 中更详细地介绍这些内容。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2010-12-24
        • 2011-05-07
        • 2013-12-06
        • 2014-07-14
        • 1970-01-01
        • 2013-11-13
        • 2017-02-21
        • 2012-03-09
        • 1970-01-01
        相关资源
        最近更新 更多