35

空間的および時間的局所性の意味について少し混乱しています。配列の例でそれを見て、それをよりよく理解するのに役立つことを願っています。

このような例: A[0][1]、A[0][2]、A[0][3]....など

これは時間的局所性を示していますか? 同じ行が何度もアクセスされていますが、オフセットが異なります...これは、別のアドレスがアクセスされているということですか?

また、A[1]、A[2]、A[3]...などのような例を言っても正しいですか。

空間的局所性を示していますか?

実際のコードで時間的および空間的な局所性がどのように機能するかについての明確化が、それらをよりよく理解するのに役立つことを願っています.

4

6 に答える 6

83

空間的および時間的局所性は、プログラムがデータ (または命令) にアクセスする方法の 2 つの異なる特性を表します。ウィキペディアには、参照の局所性に関する優れた記事があります。

一連の参照はspatial、時間的に近く参照されるものが空間的にも近い場合 (近くのメモリ アドレス、ディスク上の近くのセクタなど)、局所性を持つと言われます。temporal同じものへのアクセスが時間内にクラスター化されている場合、シーケンスは局所性を持っていると言われます。

プログラムが大きな配列のすべての要素にアクセスし、それを 1 回読み取った後、次の要素に移動し、他のすべての場所に触れるまで特定の場所へのアクセスを繰り返さない場合、空間的局所性の明らかなケースですが、そうではありません。時間的局所性。一方、プログラムが、別のランダムなサブセットに移動する前に、配列上の場所のランダムなサブセットに繰り返しアクセスすることに時間を費やしている場合、そのプログラムは時間的な局所性を持っているが、空間的な局所性を持っていないと言われます。適切に作成されたプログラムには、一緒にアクセスされるものをグループ化するデータ構造があり、空間的な局所性が保証されます。アクセスした直後にBにアクセスする可能性が高いプログラムの場合A の場合、 ABの両方を互いに近くに割り当てる必要があります。

あなたの最初の例

A[0][1], A[0][2], A[0][3]

空間的局所性を示しており、時間的に近くアクセスされるものは空間的に近くなります。同じものに複数回アクセスしていないため、時間的局所性は示されません。

あなたの2番目の例

A[1], A[2], A[3]

は空間的局所性も示しますが、時間的局所性は示しません。

時間的局所性を示す例を次に示します

A[1], A[2000], A[1], A[1], A[2000], A[30], A[30], A[2000], A[30], A[2000], A[30], A[4], A[4]
于 2013-05-15T00:06:33.017 に答える
0

時間的局所性: 時間的局所性は、繰り返し参照されるリソースに基づいています。

空間的局所性: 空間的局所性は、最近参照されたデータに隣接するデータが近い将来に要求されることを示しています。

于 2019-07-13T15:39:08.640 に答える
-1

時間的局所性は、空間的局所性の特殊なケースです。

于 2018-04-19T07:37:12.653 に答える