使用 perf stat 时硬件性能计数器会减少吗?

Can hardware performance counters decrease when using perf stat?

我正在使用以下命令通过 perf stat 采取基于时间的措施:

$ perf stat -x, -I 100  -oout.txt -e cache-misses:u find / -name file

抽取的样本并不总是在增加。有些措施低于前一项。这是一个例子:

0.100225621,1103127,cache-misses:u
0.200583165,1098697,cache-misses:u
0.300825858,1093229,cache-misses:u
0.401061818,1307353,cache-misses:u
0.501293039,1271823,cache-misses:u
0.601531048,968170,cache-misses:u
0.701913069,986001,cache-misses:u
0.802181430,1080398,cache-misses:u
0.902453753,1312237,cache-misses:u
1.002721050,1276197,cache-misses:u
1.102988175,1263220,cache-misses:u
1.203292647,1201003,cache-misses:u
1.228879941,275942,cache-misses:u

第一个指标是1103127,第二个指标是1098697,低于前一个。

这是性能错误还是有任何解释?

无法从您的 post 中真正看出它是 -l100(l 代表 Love)还是 -I100(I 代表 Interval)。我猜是后者。如果是这种情况,那么从手册页中可以看出它打印了 count deltas.

 
-I msecs, --interval-print msecs
           Print count deltas every N milliseconds (minimum: 100ms) example:
           perf stat -I 1000 -e cycles -a sleep 5