与-r和-x一起运行时,perf-stat中的列是什么

时间:2019-04-16 13:19:06

标签: perf

我试图解释在程序上运行的perf-stat的结果。我知道它与-r 30和-x一起运行。从https://perf.wiki.kernel.org/index.php/Tutorial说,如果使用-r运行,将报告stddev,但是我不确定是哪几列,并且使用-x运行时,我在查找输出信息时遇到了麻烦。我收到的输出的一个示例是

19987,,cache-references,0.49%,562360,100.00                                                                    
256,,cache-misses,10.65%,562360,100.00                                                                                 
541747,,branches,0.07%,562360,100.00                                                                                                   
7098,,branch-misses,0.78%,562360,100.00                                                                        
60,,page-faults,0.43%,560411,100.00                                                                            
0.560244,,cpu-clock,0.28%,560411,100.00                                                                        
0.560412,,task-clock,0.28%,560411,100.00

我的猜测是,%列是标准偏差(占第一列的百分比),但我不确定。

总的来说,我的问题是这些列代表什么?标准偏差在哪一列?

1 个答案:

答案 0 :(得分:4)

您非常亲密。这是一些空白。

  1. 测量值的算术平均值。
  2. 单位(如果已知)。例如。在我的系统上,它为“ cpu-clock”显示“ msec”。
  3. 事件名称
  4. 标准偏差定为100%=平均值
  5. 对此事件进行实际计数的时间
  6. 此事件实际运行的启用时间的比例(以%为单位)

最后两个与多路复用有关:如果选择的计数器多于可同时记录的数量,则表示的百分比将降至100以下。

在我的系统上(Linux 5.0.5,不确定,因为何时可用),对于一些计算派生指标的指标也有一个 shadow stat 。例如,cpu-clock将计算CPUs utilizedbranch-misses计算丢失的分数of all branches

  1. 阴影统计值
  2. 阴影统计信息描述

请注意,此格式会随其他选项一起更改。例如,如果您以更精细的粒度分组(例如,每个CPU)显示指标,则有关这些分组的信息将附加在其他列中。