Perf的总和不等于100%

时间:2018-07-03 15:14:00

标签: android linux profiling perf

我正在尝试使用性能工具来测量我的Android手机的CPU使用率。由于我的手机(Redmi Note 3)没有性能工具。我使用了Google提供的simpleperf工具。我使用perf record -e cpu-cycles -a记录了系统范围的CPU使用率。 perf报告的cpu使用率开销必须加到100%,但是从我的手机获得的cpu使用率报告在经过10分钟的分析后,只会增加到12%。我剖析了手机处于闲置状态并杀死了所有应用程序的情况。

而且,当我进行1分钟的分析时,它增加了约70%。

是否异常?还是perf不报告cpu的空闲时间,所以我只剩下12%的cpu使用率?

1 个答案:

答案 0 :(得分:3)

我发现这是由于perf中的浮点(精度)错误引起的。因为当我运行perf记录足够长的时间(即使开销小于0.01%堆积)时,perf最多只能计算出open精度的开销,而在30分钟之后,它们加起来大约为50%,因此报告的开销总和仅为50%其余的50%来自0.0x%,向下舍入为0.00%。