是否在空间和时间局部性上重复访问相同的数组地址?

Is accessing the same array address repeatedly both spatial and temporal locality?

所以我对这部分代码是否具有任何空间局部性有疑问。我有一种强烈的感觉,它确实具有时间局部性。我的一个同行说有一些空间局部性,但我觉得它没有空间局部性。代码部分是这样的:

for (i = 0; i < S; i++) {
read A[2];
}

空间局部性是指访问内存位置附近。在您的示例中,数组始终由常量索引,因此只会访问一个内存位置(准确地说,它将访问数组索引的缓存行对齐地址)。因此它只有时间局部性。