已知变量为:每个大小为8KB,16KB,32KB和64KB的数组的未命中和步幅的平均数。我们能够通过PAPI获得这些值。通过查看每个数组的步幅和平均未命中率的图表,我们设法发现缓存大小为32KB,缓存块大小为64B。
迭代数组的C代码:
for(array_size=ARRAY_MIN; array_size < ARRAY_MAX; array_size=array_size*2)
for(stride=1; stride <= array_size/2; stride=stride*2){
limit = array_size - stride + 1;
for(repeat=0; repeat<=200*stride; repeat++)
for(index=0; index<limit; index+=stride)
x[index] = x[index] + 1;
}