作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找出对 C++ 程序进行基准测试的最佳方法,并想模拟与基准测试部分相关的数据存在于缓存中和冷时两种情况。
是否有一种可靠的方法可以在 x86-64 机器上强制执行好的和坏的缓存局部性,作为测试运行的一种准备形式,假设它将涉及的数据是已知的?
最佳答案
据推测,您正在对一个对一系列对象执行操作的算法进行基准测试,并且您关心这些对象在内存中的位置(以及缓存)。
“模拟”局部性:创建局部性。您可以创建具有高局部性的链表以及具有低局部性的链表:
分配数组中的节点。要创建具有高局部性的列表,请确保数组的第一个元素指向第二个元素,依此类推。要创建具有较低局部性的列表,请创建顺序的随机排列,以便每个节点指向数组随机位置中的另一个节点。
确保元素数量至少比最大缓存大一个数量级。
关于c++ - 有没有办法在基准测试时模拟缓存局部性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60698317/
我是一名优秀的程序员,十分优秀!