【发布时间】:2014-06-22 02:58:50
【问题描述】:
我正在 Linux 上执行我的 C++ 代码。在我的代码中,有一些结构的大型二维数组。该数组是随机访问的。我必须找出访问该二维数组时发生了多少缓存未命中。除了 valgrind(因为计算结果需要花费太多时间)之外,还有其他解决方案可以帮助我找到该数组的缓存未命中率和缓存未命中率。
【问题讨论】:
-
如果对数组的访问被封装了,或许可以为给定的缓存属性写一个简单的缓存模拟器,然后挂钩到数组访问?
-
如果是真正的随机访问,那么命中/未命中率就是cache_size/array_size。
标签: c++ performance caching