メモリ階層と性能
時間的局所性の例として最も適切なものはどれか。
- A配列の要素を先頭から順番に1回ずつ読む
- Bループの中で同じ合計用の変数を何度も更新する
- C毎回ランダムなアドレスのデータを1回だけ読む
答えと解説を見る
正解:B. ループの中で同じ合計用の変数を何度も更新する
時間的局所性は、一度使ったデータを近いうちにまた使う性質で、ループ内で繰り返し読み書きする変数が典型例です。こうしたデータはキャッシュやレジスタに残っている間に再利用されるため、アクセスが速くなります。配列を先頭から順に読むのは、近くのアドレスを続けて使う空間的局所性の例で、時間的局所性とは別の性質です。ランダムに1回だけ読むアクセスには、どちらの局所性もほとんどありません。
- A. 先頭から順に読むのは空間的局所性の例です。
- B. 正しい。同じ変数を短い間に何度も使うのが時間的局所性です。
- C. ランダムに1回ずつ読むアクセスには局所性がほとんどありません。