6

您好有一些关于空间和时间局部性的问题。我在课程理论中读到

空间局部性

如果一个项目被引用,其他地址附近的可能性将很快被引用

时间局部性

在某个时间点被引用的一个项目往往很快会再次被引用。

好的,但是我如何在代码中看到它?我想我理解了时间局部性的概念,但我还不了解空间局部性。例如在这个循环中

for(i = 0; i < 20; i++)
    for(j = 0; j < 10; j++)
        a[i] = a[i]*j;

当访问 a[i] 十次时,内部循环将调用相同的内存地址,所以我猜这是时间局部性的一个例子。但是在上述循环中是否也存在空间局部性?

4

1 回答 1

6

当然。例如,在引用 a[5] 之后,您将要引用 a[6]。

于 2010-11-03T22:08:34.673 回答