リソースの参照に、時間的あるいは空間的な偏りがあること。あるいはその度合いのことです。
時間的な偏りは、時間的局所性とも呼ばれ、1つのリソースが、短い時間の中で繰り返し参照されることをいいます。少し言い換えると、1度参照されたリソースは、近い将来に再び参照される可能性が高いことをあらわしています。
空間的な偏りは、空間的局所性とも呼ばれ、ある狭い範囲に存在しているリソースに参照が集中することをいいます。また、次に参照される場所が、前回の続きの位置である可能性の高さを特に、逐次的局所性と呼びます。
参照局所性を利用している例として、キャッシュが挙げられます。メインメモリへのアクセスは非常に頻繁に行われるため、時間的局所性が高いといえます。そこで、メインメモリよりも高速なキャッシュメモリに、メインメモリ上のデータをコピーし、メインメモリへのアクセスを減らすことで全体の高速化を図ります。
キャッシュメモリにコピーしておけるデータの量には限度があるため、空間的局所性の高さも、キャッシュの効率に貢献します。空間的局所性は、プログラミング上の工夫や、コンパイラによる最適化によって高められます。
たとえば、ある短い時間の中でアクセスされる複数の変数が、メインメモリ上で近い位置に集まっていれば、空間的局所性が高まりますから、配列や構造体を利用することは効果があります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |