使用perf或其他方式获取C程序的运行时间(或其他统计数据)

时间:2012-09-27 02:34:19

标签: c perf

我需要编写一个C程序(用于学校作业以确定缓存大小)。我使用clock()作为获取时间信息的方法。但 was told 可能导致不准确的结果。

所以我在考虑使用最近实验室中引入的其他库,perf或papi来记录性能。但我们使用它们的方式是通过命令行:

perf stat ./test 

我认为可以在应用中使用perf吗?我是C的新手,更习惯于Python / JS / Java等高级语言。所以我想我需要创建一个make文件,包括库等。我还有什么功能?

我看到了http://www.rzg.mpg.de/computing/hardware/BGP/perf.html

libperf.a
    perf library for MPI programs.
libperfhpm.a
    Use perf instrumentation to call hpmtoolkit.
libperfdummy.a
    Provides dummies for the perf instrumentation. You can link against this library to avoid the perf overhead in production runs.

我使用哪种?它不是MPI计划。然后我该如何实际使用它?我正在使用C和gcc。这看起来像编译,但......最新mpixlf90

mpixlf90_r -o tperf tperf.f -L/usr/local/lib -lperf

1 个答案:

答案 0 :(得分:1)

有很多性能分析工具(提供有关C和C ++程序的运行时,内存消耗的信息),其中一些是,

  1. Valgrind

  2. Google Perf Tools

  3. 希望这就是你要找的东西!