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%] 的含义是什么。
答案 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