キャッシュ
キャッシュ(英:cache)とは、一旦読み込んだデータを次すぐ使えるようにと一時的に保持する機能。
概要[編集]
コンピューターの内部やインターネットの世界では恒常的に使う機能。
サーバー上だったりネットワーク上だったりクライアントのコンピューター内部、スマホ内部、Webブラウザなどの各アプリケーションでも独自にキャッシュを持つ場合もある。
具体例[編集]
キャッシュを使うことで、通信や記憶媒体へのアクセスを減らし、速度向上や処理効率化が見込める。
大雑把に言うと、データをより近くの記憶媒体にコピーしておくことで、遠い場所との往復を避けることができるということである[1]。
一般的なコンピュータープログラムにおけるキャッシュの例には、ハードディスクなどの二次記憶装置に保存されたファイルから読み込んだデータを、加工するかそのままの形で一時記憶装置(メモリー)に保存する(キャッシュする)、という方式がある。こうすることで、ファイルの内容が変わらない前提であれば、データを使用する際に、二次記憶装置に格納されているファイルにアクセスするコストを削減でき、頻度が多ければ多いほど効果がある。
ネットワーク上の別のマシン上にあるファイルのデータを利用する場合も同様で、ファイルを何度も使うのであれば、一度ファイルをダウンロードしておけばそれ以降の不要なネットワークアクセスを抑制できる。
インターネットで使用されるHTTPプロトコルでは、静的コンテンツの不必要なダウンロードを避けるために「ファイルが前回ダウンロードされてから更新されていない」という応答[2]を返すことができ、Webブラウザーなどのアプリはこれを受け取った場合はファイルをダウンロードせずにキャッシュを使うかどうかを選択できる[3]。
他の例としては、CPUにおけるキャッシュメモリーがある。キャッシュメモリーは、容量は小さいが一時記憶装置よりもはるかに高速にCPUがアクセスできるメモリーで、これによって更なる処理効率の向上が見込める。キャッシュの利用頻度が高くなるような処理をしている状態を「キャッシュヒット率が高い」という。CPUのキャッシュの使われ方を理解してキャッシュの利用頻度が上がるようにアルゴリズムなどを工夫することで、キャッシュヒット率を向上できる場合がある。