出于基准测试的原因,我需要多次在相同的数据上运行相同的算法。现在,我想探讨相同数据的所有运行都在冷缓存上的情况。
我正在考虑添加一个for循环读取数组的每个元素(每个元素上的LOAD / MOV指令),以便缓存填充数组元素。例如
vector<size_t> vec(CACHE_SIZE/sizeof(size_t));
//...
//...
size_t element;
for (size_t i = 0; i < vec.size(); ++i) {
element = vec[i];
}
但是在使用优化进行编译时,所有这些都可能会被删除。
那么我该如何做到这一点,可能只需要很少的开销。