【きゃっしゅみす】

キャッシュミス とは?

💡 手元にない…取りに行くしかない
📌 このページのポイント
キャッシュミス CPU 要求 キャッシュ データなし... × 取得要求 メインメモリ データ取得 低速... キャッシュにデータがない → メモリまで取りに行く(低速) = キャッシュミス
キャッシュミスのイメージ
ひよこ ひよこ

キャッシュミスって、キャッシュヒットの反対なの?

ペンギン先生 ペンギン先生

そのとおり!キャッシュを探したけどデータが見つからなかった状態のことだよ。図書館で言えば、手元の棚に本がなくて、倉庫まで取りに行かなきゃいけない感じだね。

ひよこ ひよこ

キャッシュミスにも種類があるって聞いたんだけど…

ペンギン先生 ペンギン先生

大きく3つあるよ。初めてアクセスするデータで起きる「コールドミス」、キャッシュの容量が足りなくて追い出された「キャパシティミス」、同じキャッシュ領域を複数データが奪い合う「コンフリクトミス」だね。

ひよこ ひよこ

どれが一番やっかいなの?

ペンギン先生 ペンギン先生

コールドミスは初回だから避けようがないけど、キャパシティミスやコンフリクトミスはキャッシュの設計やアルゴリズムで減らせるんだ。特にコンフリクトミスは、キャッシュの「連想度」を上げると改善できるよ。

ひよこ ひよこ

キャッシュミスが起きるとどうなるの?

ペンギン先生 ペンギン先生

CPUの場合、メインメモリまで取りに行くから100倍くらい遅くなることもあるよ。Webサーバーだと、キャッシュミスのたびにデータベースへ問い合わせが飛ぶから、アクセスが集中するとサーバーがパンクする原因にもなるんだ。

ひよこ ひよこ

キャッシュミスを減らすコツってあるの?

ペンギン先生 ペンギン先生

プログラミングでは「データの局所性」を意識することが大事だよ。近くのメモリを順番にアクセスする「空間的局所性」と、同じデータを短期間に繰り返し使う「時間的局所性」を高めると、ヒット率がグンと上がるんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「キャッシュミス」って出てきたら「キャッシュにデータがなくて遅い方に取りに行くこと」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cache Miss」 = キャッシュ失敗
💬 cache(貯蔵庫)で miss(見逃す・外す)した、つまりデータが見つからなかったという意味だよ
← 用語集にもどる