1

空間的および時間的な局所性についてお聞きしたかったのです。ループ変数が含まれるループ内にあり、i という名前の配列をトラバースしている場合、 arr[i] にアクセスすると、最初にアクセスして何が何であるかを調べるためarr[i]、時間的および空間的局所性の両方である必要があります。次に、そのインデックスに移動します。ここでは 2 つのことを行っています。ii

  1. アクセスi(時間的局所性)。
  2. アドレスへのアクセスarr[i](空間的局所性)。

この特定の状況で私が正しいかどうか教えてください。
前もって感謝します。

4

1 に答える 1

3

時間的局所性:物事は短期間で起こりますか?もしそうなら、彼らは一時的な局所性を持っています。そうでない場合、彼らはしません。

空間的局所性:物事は空間(すなわち記憶)内で互いに近くに位置していますか?もしそうなら、彼らは空間的な局所性を持っています。そうでない場合、彼らはしません。

これらの用語を使用するときは、何が何に対してローカルであるかを指定する必要があることに注意してください。単独では、それらはほとんど意味を持ちません。

意志の要素arr(一般的に意味される「配列」の実装、つまり連続したブロックに割り当てられたデータ要素を想定)は、相互に空間的な局所性を持っています。に関して(少なくとも質問で述べられていることからは)どこiに配置されるかわからないarrため、これらのオブジェクトが相互に空間的な局所性を示すかどうかはわかりません。

ステートメントは次々にアクセスiして発生するため、各配列要素で行う作業が安価であると仮定すると、これらは一時的な局所性を示します。arr[i]この仮定では、arr後続の反復によるのさまざまな要素の参照も時間的な局所性を示します。ただし、ループの反復ごとに、アクセスiとの間に長い時間がかかる関数を呼び出すとarr、これらのアクセスが時間的な局所性を示すことはもはや真実ではなくなります。

于 2011-10-27T14:40:09.510 に答える