【发布时间】:2014-07-28 09:47:09
【问题描述】:
我想测量我的代码的缓存未命中率。我们可以使用 perf list 来显示支持的事件。我的桌面有一个 Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz 处理器,性能列表包含缓存引用和缓存未命中,如下所示:
cpu-cycles OR cycles [Hardware event]
stalled-cycles-frontend OR idle-cycles-frontend [Hardware event]
stalled-cycles-backend OR idle-cycles-backend [Hardware event]
instructions [Hardware event]
cache-references [Hardware event]
cache-misses [Hardware event]
我认为缓存未命中根据英特尔架构软件开发人员手册映射到硬件事件 LLC-misses(我通过比较 perf stat -e r412e 和 perf stat -e 来确认这一点缓存未命中,他们给出了几乎相同的结果)。但是缓存引用是如何计算的呢?我没有找到使用现有硬件事件获取总缓存引用的事件或方法。所以我想知道这个缓存引用在我的计算机上是否准确?
【问题讨论】:
-
我在缓存未命中下方看到缓存引用。什么是小时精确问题?
-
我的意思是虽然给你缓存引用,但我想知道它是如何计算的,它准确吗?我没有在英特尔手册中找到缓存引用的事件计数器。