相关疑难解决方法(0)

程序部分的perf stat

是否可以通过perf收集硬件计数器统计信息,仅用于程序执行的一部分?如果是这样,怎么样?

likwid提供了能够定义命名区域的功能,但如果只在安装了perf的系统上实现这一点,那将会很棒.

以前的一些问题已经返回相关答案,但仍有一些缺点:

  • 使用探针我得到相同的错误,我使用的是稍微更新的内核(3.13).这些修补程序是否在较新版本中可用?
  • 使用perf_event_open我想保持在命令行上定义事件的灵活性.我还看了一下perf stat 本身的代码,但似乎没有通过调用perf_event_open进行设置.

linux perf likwid

7
推荐指数
1
解决办法
1106
查看次数

如何启动和停止性能采样

我正在使用 perf 对程序的性能进行采样。

这对我有用:

$ perf record -g  ./bench
...
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.023 MB perf.data (93 samples) ]
$ ls -al perf.data
-rw------- 1 bram bram 26848 Oct 25 10:22 perf.data
Run Code Online (Sandbox Code Playgroud)

但现在我想在程序中的特定点开始和停止收集。但如果我这样做:

$ perf record -g -e cycles --filter="start render_image" ./bench
--filter option should follow a -e tracepoint option
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为过滤器标志确实遵循 -e 选项。这里发生了什么?

我也对 perf.data 的体积如此之小感到困惑,难道它真的只收集了 93 个样本吗?它运行了几秒钟。

最后,我假设“-e Cycles”是默认事件?

更新:正如 Arnabjyoti Kalita 所解释的,有一类特殊的事件称为跟踪点。如果我以 root 身份运行 …

profiling perf

6
推荐指数
1
解决办法
6449
查看次数

标签 统计

perf ×2

likwid ×1

linux ×1

profiling ×1