如何用perf计算L3缓存缺失率及统计主内存访问次数?
关于perf统计LLC缓存事件与主内存访问的问题解答
一、LLC访问(LLC references)的perf支持情况
perf完全支持LLC访问统计,优先使用跨架构兼容的标准事件名,避免依赖硬件特定的raw事件码:
- 统计LLC总访问数:执行
perf stat -e LLC-references <command> - 统计LLC缺失数:执行
perf stat -e LLC-misses <command>
如果你的环境需要使用raw事件码(比如部分老版本perf或特殊CPU),x86 Intel平台下,LLC访问对应的raw事件通常是r410e,LLC缺失是你提到的r412e。可以通过 perf list | grep LLC 命令查看当前系统支持的所有LLC相关事件,确保事件名匹配。
二、主内存访问次数的统计方式
当所有缓存层级(L1、L2、LLC)都缺失时,才会发起主内存访问,因此LLC缺失数可以直接作为主内存访问次数的近似指标(常规程序场景下,可忽略预取、IO内存访问等特殊情况的影响)。不需要追踪LLC引用,只需统计LLC缺失即可。
内容的提问来源于stack exchange,提问作者Sherlock
相关产品推荐
相关产品推荐

