Shark L2 缓存分析不会采样
我正在尝试使用 Shark 来检查 L2 缓存未命中情况,但它不起作用。 所有其他 Shark 采样模式都工作正常。
I'm trying to use Shark to check for L2 cache misses, but it won't work. All of the other Shark sampling modes work fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
并非所有 CPU 都支持 L2 缓存未命中分析(这取决于 CPU 具有哪些性能寄存器)。
另请注意,每 N 个缓存未命中您只会获得一个样本,因此如果您的代码没有执行太多操作(即不访问未缓存的内存),那么您可能看不到任何样本。
Not all CPUs support L2 cache miss profiling (it depends on what performance registers the CPU has).
Also note that you only get a sample every N cache misses, so if your code is not doing much (i.e. not accessing uncached memory) then you may not see any samples.
...有点晚了,但很可能,出于某种原因,Shark 没有检测到您正在使用哪个 CPU,并假设您没有适当的硬件性能计数器。
查看英特尔架构手册(我认为#3)了解性能计数器的作用 - 不幸的是,通常没有直接的 L1/L2/LLC 未命中计数器,因此您需要其他计数器的某种组合或使用另一个计数器作为估计。
... a little late, but chances are, some reason, Shark didn't detect which CPU you are using and assumes you don't have the appropriate hardware performance counters.
Check out the Intel architecture manuals (#3 I think) for what perf counter does what -- unfortunately, there are often no direct L1/L2/LLC miss counters so you'll need some combination of other counters or use another as an estimate.