如何计算内存(RAM)带宽使用情况?需要哪些性能计数器?
我找到了一个工具可以完成这个任务,那就是“Rightmark多线程内存测试”。但与Rightmark的其他测试不同,我没有找到它的源代码,只有二进制文件。
如何计算内存(RAM)带宽使用情况?需要哪些性能计数器?
我找到了一个工具可以完成这个任务,那就是“Rightmark多线程内存测试”。但与Rightmark的其他测试不同,我没有找到它的源代码,只有二进制文件。
“计算”内存带宽使用率非常困难。需要处理大量复杂的缓存和MMU问题。唯一真正的方法是通过模拟或实际测量来完成。
您可以通过调试代码并计算执行的内存加载和存储操作数量来获得“粗略”的想法。但是,知道它是否是缓存命中/未命中是另一个问题。
这取决于您的目的。如果是为了获得猜测,您可以使用经验法则,即通用代码约有30%是内存加载和存储。如果您正在尝试获取最坏情况,则可以假设缓存始终未命中并进行计算。
您可以尝试查看虚拟化。有几个开源选项(例如QEMU)。可能可以从中导出某些硬件测量值。