ちかくに おいて はやく つかう、キャッシュ
よく よむ ほんを まいかい とおい そうこまで いって とりだすとします。いき かえりの たびに すごく かかります。でも つくえの うえに しゃほんを いっさつ おいたら? つぎからは てを のばすだけ。よく つかう ものを ちかくに しゃほんで おく この やりかたが キャッシュです。
とおい そうこは いき かえりが おそい
まえに データベースが
さくいんで すぐ ジャンプして さがすのを まなびました。
でも さがした あとも
データを どこかから とりださねば なりません。
その ほぞんばしょが とおくに あったら どうでしょう?
いき かえりの みちが ながく いっかい とりだす たびに
じかんが かなり かかります。
しかも おなじ ものを また みる とき
また その とおい みちを いく ことに なる。
データを おして とおい そうこから とりだしてみて。みちが ながく いき かえりに かなり かかります。
いっかい とりだすのに みちが とおかったですね。
いちにかいなら がまんできる。
でも おなじ データを
いちにちに すうひゃっかい みるとしたら?
その とおい みちを すうひゃっかい いき かえりする。
かんがえるだけで うんざりします。
よく みる ものなら
まいかい とおくへ いく ひつようが ある?
ちかくに しゃほんを いちぶ おく
やりかたは いがいと かんたんです。
よく みる データを
とおい そうこから いっかい とりだした あと
ちかくに しゃほんを いちぶ おく。
この ちかくの ほかんばこを キャッシュと いいます。
つぎに おなじ ものを さがす ときは
とおい そうこまで いかなくて いい。
すぐ よこの キャッシュから みじかい みちで
すぐ とりだせば いいからです。
データを おして ちかくの キャッシュに しゃほんを コピーして おく。からっぽの キャッシュが うまります。
ちかくの キャッシュに しゃほんが できましたね。
これで おなじ データを また さがすと
とおい そうこは わすれて いい。
キャッシュから みじかい みちで すぐ とりだすからです。
でも ひとつ きを つける ことが ある。
さがす ものが キャッシュに ある ときと
ない ときでは しごとが かわります。
その ふたつを わけて みてみましょう。
ヒットと ミス
さがす とき ふたつの えだが ある。
さがす ものが キャッシュに もう あれば
みじかい みちで すぐ とりだす。
これを ヒットと いいます。はやい。
さがす ものが キャッシュに なければ
しかたなく とおい そうこまで いく。
これを ミスと いいます。おそい。
ミスの ときは もってきた ついでに
しゃほんを キャッシュに のこす。
そうすれば つぎは ヒットに なる。
リクエストを おしてみて。キャッシュに あれば みじかい みちで ヒット、なければ ながい みちで ミスの あと キャッシュに しゃほんを のこす。
さいしょは ミスで おそかったけど
しゃほんを のこした あとは
おなじ リクエストが ヒットして はやく なりましたね。
よく みる ものほど
ヒットが ふえて へいきんが はやく なる。
キャッシュが だから たよれます。
でも ひとつ やっかいな ことが ある。
とおい そうこの げんぽんが かわると
キャッシュの しゃほんは どう なる?
キャッシュが ふるく なる とき
キャッシュは しゃほん でしか ない。
とおい そうこの げんぽんが かわっても
キャッシュは それを しらず
まえに うけとった ふるい しゃほんを そのまま もっている。
すると ヒットは はやいが
わたす あたいが ふるい ことが ある。
これを キャッシュが ふるく なったと いう。
はやい かわりに ふるい あたいを わたす リスク、
これが キャッシュの かげです。
どう ふせぐ?
げんぽんを おして あたいを かえてみて。キャッシュは ふるい あたいの まま。キャッシュを いれなおすか すてれば また あう。
げんぽんを かえたら キャッシュが ずれましたね。
ふせぐ みちは おおきく ふたつ。
ひとつは げんぽんが かわる とき
キャッシュを あたらしい あたいで いれなおす こと。
もうひとつは しゃほんに きげんを つけて
いっていの じかんが すぎたら すてる こと。
すてられた ばしょは つぎの ミスの ときに
あたらしい しゃほんで また うまる。
どちらでも ふるい あたいを へらしつつ
はやい ヒットは いかす バランスです。
まとめて みましょう
ひとことに まとめると こうです。
とおい ほぞんばしょは いき かえりが ながく おそい。
よく つかう ものは ちかくに しゃほんを おく。
それが キャッシュ。
さがす ものが キャッシュに あれば ヒットで はやく、
なければ ミスで とおい ばしょまで いく。
ミスの あとは しゃほんを のこして つぎに そなえる。
げんぽんが かわると キャッシュは ふるく なるので
いれなおすか すてて ふせぐ。
ちかくに おいて はやく つかう、それが キャッシュです。
かなめを じゅんに おして ふりかえって。(とおいと おそい → ちかくに しゃほん → ヒットと ミス → げんぽんが かわると ふるい)
これで ちかくに しゃほんを おいて
おなじ ものを また はやく つかう やりかたが わかりました。
まいかい とおい みちを いく もどかしさが
しゃほん いちぶで すっきり とけましたね。
はやさを えた ぶん ふるいものに きを くばる
この バランス かんかくが データを あつかう ちからです。
キャッシュは コンピュータの あちこちに かくれています。
つぎは ほかの どこで この しゃほんの ちえが
つかわれるか いっしょに つづけて みていきましょう。