如何监控Windows上的CPU缓存?

时间:2013-01-17 15:01:05

标签: windows

我希望尽可能地让我的代码免于刷新L2缓存。

你将如何在C ++ / C#中实现这一目标,以及如何让它成为可靠的。

编辑:我可以选择收集L2缓存未命中数吗? 回答:是Can I get the L2 cache miss count of each process on the windows platform?

2 个答案:

答案 0 :(得分:4)

问题似乎是基于对缓存如何在现代x86 CPU上运行的误解。例如,它表示“L2而不是L3”。在几乎所有现代x86 CPU(Intel和AMD)上,都不可能在L2缓存中使用数据而不是L3缓存。这会导致缓存一致性失败,因为L3缓存中缺少数据表明它在L2缓存中不存在,并允许核心假设没有其他核心缓存它。

直言不讳地说,那些不太了解CPU如何工作的人不应该试图控制缓存中的数据。如果他们比那些首先设计这些CPU的人做得更好,那将是奇迹。

答案 1 :(得分:1)

似乎人们不愿意泄露这个领域的信息(c ++或c#并不重要)。所以我可能会创建自己的策略,可能会使用一组方法而不是一套严格的规则或配方。

要实现Windows应用程序的最大命中/未命中率,我可能会:

相关问题