运行算法时检测 CPU 缓存未命中的最佳方法是什么?

rre*_*979 5 cpu caching cpu-cache

我们有一个性能不佳的算法,我们认为这是因为 CPU 缓存未命中。尽管如此,我们无法证明它,因为我们没有任何方法可以检测到它们。有什么方法可以告诉算法产生多少 CPU 缓存未命中?我们可以将其移植到任何可以让我们检测到它们的语言。

提前致谢。

Sam*_*Sam 0

Intel CPU 保留性能计数器,您可以使用一些汇编指令提取这些计数器。

您能否 (1) 静态系统上的基线缓存未命中,(2) 运行程序并进行比较?

请参阅《Intel 指令集参考》第 3B 卷第 18 页第 15 页 (18-15),了解您需要编写的汇编程序。