我正在尝试使用 Shark 来检查 L2 缓存未命中,但它不起作用。所有其他 Shark 采样模式都可以正常工作。
问问题
561 次
2 回答
0
并非所有 CPU 都支持 L2 缓存未命中分析(这取决于 CPU 具有哪些性能寄存器)。
另请注意,每 N 次缓存未命中您只会获得一个样本,因此如果您的代码没有做太多事情(即不访问未缓存的内存),那么您可能看不到任何样本。
于 2010-02-10T09:45:39.243 回答
0
...有点晚了,但出于某种原因,Shark 可能没有检测到您正在使用哪个 CPU,并假设您没有适当的硬件性能计数器。
- 配置->编辑
- 将视图下拉菜单从简单翻转到高级
- 将 CPU 下拉列表从“当前(未知)”翻转到您的 CPU
- 启用感兴趣的性能计数器。例如, L2_line_in 。
查看英特尔架构手册(我认为是#3),了解 perf 计数器的作用——不幸的是,通常没有直接的 L1/L2/LLC 未命中计数器,因此您需要其他计数器的某种组合或使用另一个计数器作为估计.
于 2010-06-20T01:56:21.950 回答