什么是perf stat中循环注释的含义

时间:2016-04-17 15:06:27

标签: linux perf

      8.014196 task-clock                #    0.004 CPUs utilized          
           204 context-switches          #    0.025 M/sec                  
            32 cpu-migrations            #    0.004 M/sec                  
             0 page-faults               #    0.000 K/sec                  
    11,841,196 cycles                    #    1.478 GHz                     [46.17%]
     9,982,788 stalled-cycles-frontend   #   84.31% frontend cycles idle    [80.26%]
     8,122,708 stalled-cycles-backend    #   68.60% backend  cycles idle   
     5,462,302 instructions              #    0.46  insns per cycle        
                                         #    1.83  stalled cycles per insn
     1,098,309 branches                  #  137.045 M/sec                  
        94,430 branch-misses             #    8.60% of all branches         [77.23%]

在周期的注释中 1.478 GHz [46.17%] 的含义是什么。

1 个答案:

答案 0 :(得分:2)

这是我在perf非常讨厌的事情,文档和手册页已经过时,搜索某些值的含义非常复杂。我确实搜索了一次,所以我添加了我的发现:

  

1.478 GHz

的含义是什么?

据我所知,#之后的值是将本机计数器值(第一列中的值)重新计算为用户可读的表单。此值应大致对应处理器的时钟速度:

grep MHz /proc/cpuinfo

应该给出类似的价值。它是从tools/perf/util/stat-shadow.c打印出来的。

  循环注释中的

[46.17%]

此值应与时间部分相对应,硬件计数器处于活动状态。 Perf允许启动更多硬件计数器并在运行时复用它们,这使程序员更容易。

我没有在代码中找到实际位置,但最近在proposed patch中将其描述为(csv格式的一部分):

+   - percentage of measurement time the counter was running
相关问题