内存带宽使用情况

Tom*_*Bie 5 c c# c++ hardware performancecounter

你如何计算使用的内存(RAM)带宽?需要哪些性能计数器?

我遇到了一个能够做到这一点的工具,即"Rightmark多线程内存测试".但与Rightmark的其他测试不同,我没有找到它的源代码,只是二进制文件

syb*_*eon 0

“计算”内存带宽使用情况非常困难。有许多重要的缓存和 MMU 问题需要解决。唯一真正的方法是通过使用模拟或现实世界的测量。

您可以通过调试代码并计算执行的内存加载和存储操作的数量来获得“粗略”的想法。然而,了解是否是缓存命中/未命中是另一个问题。

这取决于您的目的。如果是为了获得猜测,您可以使用经验法则,即大约 30% 的通用代码是内存加载和存储。如果你试图得到最坏的情况,你可以假设缓存总是丢失并解决它。

您可以做的一件可能的事情就是考虑虚拟化。有多种开源选项(我想到的是 QEMU)。可以从中导出某些硬件测量结果。