我正在阅读这个问题,我想更多地了解他展示的代码,即
for(i = 0; i < 20; i++)
for(j = 0; j < 10; j++)
a[i] = a[i]*j;
问题是,
- 我了解时间局部性,我认为对 i 和 j 的引用应该是时间局部性。我对吗?
- 我也理解空间局部性,因为我链接的问题是对 a[i] 的引用应该是空间局部性。我对吗?
该人说,
“当访问 a[i] 十次时,内部循环将调用相同的内存地址,所以我猜这是时间局部性的一个例子。但是在上面的循环中也有空间局部性吗?”
我不同意他的猜测。由于 a[i] 生成的引用应该是空间局部性(它们将引用块中的下一个元素)。我对吗?