Perf:在 perf stat 输出中 [<n percent>] 记录是什么意思?

lar*_*ary 3 performancecounter perf

perf stat -e <events> <command> 许多不同的事件通常会返回这样的输出

   127.352.815.472 r53003c                                                      [23,76%]
    65.712.112.871 r53019c                                                      [23,81%]
   178.027.463.861 r53010e                                                      [23,88%]
   162.854.142.303 r5302c2                                                      [24,05%]
   ...
Run Code Online (Sandbox Code Playgroud)

百分比记录是什么意思?

Gab*_*ern 5

百分比显示在 perf 必须多路复用事件的情况下测量特定事件的时间百分比。事件多路复用在perf wiki上有更详细的解释,我在下面包含了一个简短的引用:

如果事件多于计数器,内核会使用时间复用(开关频率 = HZ,一般为 100 或 1000)让每个事件都有机会访问监控硬件。多路复用仅适用于 PMU 事件。使用多路复用时,不会一直测量事件。在运行结束时,该工具根据启用的总时间与运行时间来缩放计数。