【きゃっしゅひっと】

キャッシュヒット とは?

最終更新:
💡 欲しいものが手元にある、最高の瞬間

キャッシュヒットとは、CPUやブラウザがデータを取得しようとしたとき、キャッシュ上にそのデータが見つかることです。メインメモリやディスク、オリジンサーバーなど、より遅い場所へのアクセスを省略できるため、多くの場合は処理が速くなります。

📌 このページのポイント
欲しいデータがキャッシュに見つかる CPU 読み出し要求 キャッシュ データあり 主メモリ 読みに行かず 要求 返す この読み出しはキャッシュから取得 ブラウザやCDNでも使う考え方 Webでは古いデータの再検証が必要な場合も
CPUの読み出しでヒットした場合の簡略図。速度は世代や階層、利用条件で異なる。
ひよこ ひよこ
キャッシュヒットって何なの?
ペンギン先生 ペンギン先生
データを取りに行ったとき、キャッシュにそのデータがちゃんとあった状態のことだよ。図書館で言えば、探している本が手元の棚にすぐ見つかった感じだね。
ひよこ ひよこ
見つからないときもあるの?
ペンギン先生 ペンギン先生
あるよ。キャッシュにデータがないときは「キャッシュミス」と言って、もっと遅いメインメモリやディスクまで取りに行かないといけないんだ。だからヒットするかどうかで速度が大きく変わるんだよ。
ひよこ ひよこ
どのくらい速さが違うの?
ペンギン先生 ペンギン先生
CPUやメモリの世代で違うけど、Intelの資料ではSandy Bridge世代のL1データキャッシュが最短4クロック、L2が12クロック、L3が26〜31クロックと示されているよ。3GHzなら4クロックは約1.3ナノ秒だね。キャッシュで見つからずにメインメモリまで行くと、さらに待ち時間が増えるんだ。
ひよこ ひよこ
ヒット率を上げるにはどうすればいいの?
ペンギン先生 ペンギン先生
キャッシュのサイズを大きくしたり、最近使ったデータを残しやすいアルゴリズム(LRUなど)を使ったりするんだ。プログラムのデータアクセスパターンを工夫するのも効果的だよ。CDNなら、保存期間を適切に長くしたり、クエリ文字列やCookieの違いで同じ内容を別物として保存しないようにしたりするんだ。
ひよこ ひよこ
ヒット率が高ければ、それだけでいいの?
ペンギン先生 ペンギン先生
大事な指標だけど、それだけでは決まらないよ。どのくらいが普通かは、アクセスの傾向や用途で大きく変わるんだ。Webでは、キャッシュにあっても保存期間が切れた古いデータなら、サーバーに変更がないか確認(再検証)することがある。速さと新しさのバランスを見て設定するのが大切なんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「キャッシュヒット」って出てきたら「キャッシュにデータがあって高速に取り出せた」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cache Hit」 = キャッシュ命中
💬 cache(貯蔵庫)に hit(命中)した、つまり探していたデータが見つかったという意味だよ

参考資料

← 用語集にもどる