我想测量我的代码缓存未命中率。我们可以使用perf list来显示支持的事件。我的台式机有一个Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz处理器,perf list包含了cache-references和cache-misses等内容:
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 未命中 (我通过对比 perf stat -e r412e 和 perf stat -e cache-misses 得出这个结论,它们的结果几乎相同)。但是缓存引用如何计数?我没有找到一个事件或方法来获取使用现有硬件事件的总缓存引用。所以我想知道这个缓存引用在我的电脑上是否准确?