我读过关于空间和时间的地方。
就几句话。
时间局部性:程序经常重复访问相同的内存位置。
空间局部性:程序也经常重复访问相邻的内存位置。
现在我要分析以下代码以查找所有出现的时间和空间参考局部性。
for (int i = 0, j = 10; i < 100; i++)
a[i] = j++;
我只知道以下几点。
空间
a[i] = j++;
参考后a[i]
我们即将参考a[i+1]
。- 执行所有这些操作的指令彼此相邻地存储在内存中。
颞
i
与 100 相比。i
加一:i++
.- 赋值
a[i] = j++
用作i
数组索引。 - 用于
a
索引每个a[i]
. j
由 assignment 中的 1 递增a[i] = j++
。
那么我在所有这些方面都是正确的吗?我是否错过了其他东西?