2011-10-27 4 views
1

私は約の空間の時間的局所性について質問したいと思っていました。私がループ変数のループに入っていて、iと言っていて、arr[i]という名前の配列をたどっていたら、私はarr [i]にアクセスすると私にとっては時間的空間的局所性があるはずだから最初にi何がiであり、そのインデックスに移動します。私はここで2つのことをしています。これは時間的または空間的な両方の地域性ですか?

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

私はこの特定の状況に合っているかどうか教えてください。
ありがとうございます。

答えて

3

時間的局所性:短時間で何かが起こるか?そうであれば、それらは時間的局所性を有する。そうでない場合、彼らはしません。

空間的局所性:空間(すなわちメモリ)の近くに位置するものはありますか?そうであれば、それらは空間的局所性を有する。そうでない場合、彼らはしません。

これらの用語を使用する場合、何にローカルであるかを指定する必要があります。孤立して、彼らはほとんど意味を持ちません。

arrの要素は(「アレイ」の一般的に意味される実装を仮定して、すなわち連続したブロックに割り当てられたデータ要素)は、互いに空間的局所性を有する。あなたはに関して、iがどこに位置するのか(質問に記載されているものは少なくとも)知っていないので、これらのオブジェクトが互いに対して空間的局所性を示すかどうかは言えません。

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

関連する問題