2017-06-03 11 views
0

私は、LFUがLRUより優れている良いケースを見つけようとしていますが、それについてはわかりません。この場合、LFUはLRUより優れていますか?

キャッシュの容量が3でキャッシュリクエストが4(ABCDのような)の場合、CとDがより頻繁にリクエストされる場合があります。

したがって、要求ストリームがA B C D C A D B D C A B A C D の場合、LRUは10個の障害を生成しますが、LFUは9個の障害を生成します。

これは受け入れられたケースですか?

+0

LRUは小さなキャッシュでは効率的ですが、大きなキャッシュにはスケーリングが不十分です。これらの中で、キャッシュの典型的なZipfワークロードが支配的であるため、LFUはしばしばより低い容量でより高いヒット率を有する。 LRUはスキャン(データベースなど)でも問題があり、しばしばバイパスされます。現代の政策は、より理想的なバランスを見つけるために2つを組み合わせます。 –

答えて

0

thisが役に立ちます。 LRUは非常に控えめです。

携帯キーボードにはLFUが使用されています。いくつかの文字を入力すると、入力した文字と一致するキーボードの上部にいくつかの候補単語が表示されます。開始時にキーボードのcacheが空の場合、これらの4つの単語が表示されることがあります(文字「STA」と入力したと仮定します)。ここでのアイデアは、使用する言葉に基づいて、特定の時間の後に提案内のLRUという単語を無視することです。あなたがそれを使用していない場合、あなたは後でsuggesionsの単語 "staff"を見ることができないかもしれません。

データがかなり反復的であることがわかっている場合は、必ずLFUにアクセスしてcacheが不足するのを避けてください。 これらは両方とも独立しており、独立した意味を持っているようです。これは、これらのいずれかを使用するユースケースに依存します。

関連する問題