時間的局所性:物事は短期間で起こりますか?もしそうなら、彼らは一時的な局所性を持っています。そうでない場合、彼らはしません。
空間的局所性:物事は空間(すなわち記憶)内で互いに近くに位置していますか?もしそうなら、彼らは空間的な局所性を持っています。そうでない場合、彼らはしません。
これらの用語を使用するときは、何が何に対してローカルであるかを指定する必要があることに注意してください。単独では、それらはほとんど意味を持ちません。
意志の要素arr
(一般的に意味される「配列」の実装、つまり連続したブロックに割り当てられたデータ要素を想定)は、相互に空間的な局所性を持っています。に関して(少なくとも質問で述べられていることからは)どこi
に配置されるかわからないarr
ため、これらのオブジェクトが相互に空間的な局所性を示すかどうかはわかりません。
ステートメントは次々にアクセスi
して発生するため、各配列要素で行う作業が安価であると仮定すると、これらは一時的な局所性を示します。arr[i]
この仮定では、arr
後続の反復によるのさまざまな要素の参照も時間的な局所性を示します。ただし、ループの反復ごとに、アクセスi
との間に長い時間がかかる関数を呼び出すとarr
、これらのアクセスが時間的な局所性を示すことはもはや真実ではなくなります。