ホームページ  >  記事  >  lru アルゴリズムと lfu アルゴリズムの違いは何ですか?

lru アルゴリズムと lfu アルゴリズムの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2021-05-07 15:35:5918460ブラウズ

違い: LRU は最も長く使用されていないページを削除する、最も最近使用されていないページ置換アルゴリズムであり、LFU は最も長く使用されていないページを削除する、最も最近使用されていないページ置換アルゴリズムです。一定期間内の訪問回数が最も少なかった。 LRU の鍵は、ページが最後に使用されてからスケジューリングが行われるまでの時間の長さを調べることですが、LFU の鍵は、一定期間内のページの使用頻度を調べることです。

lru アルゴリズムと lfu アルゴリズムの違いは何ですか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

Web 開発ではキャッシュは不可欠であり、パフォーマンスを向上させる最も一般的な方法でもあります。ブラウザー キャッシュ (Chrome ブラウザーの場合は、chrome:://cache を通じて表示できます) か、サーバー側キャッシュ (memcached や redis などのメモリ内データベースを通じて) かどうか。キャッシュにより、ユーザーのアクセスが高速化されるだけでなく、サーバーの負荷と圧力も軽減されます。次に、一般的なキャッシュ削除アルゴリズムの戦略と原則を理解することが特に重要です。

一般的なキャッシュ アルゴリズム

  • LRU (最も最近使用されていない) は、最も最近使用されていないデータです。データが最近アクセスされた場合、アクセスされる確率は次のとおりです。未来はもっと大きく、高くなります。
  • LFU (最も頻繁に使用されない) 最も頻繁に使用されないデータが最近ほとんど使用されなかった場合、将来も使用される可能性は非常に低くなります。
  • FIFO (先入れ先出し) データの一部が最初にキャッシュに入った場合は、最も早く削除する必要があります。

LRU キャッシュ

ブラウザのキャッシュ戦略と memcached キャッシュ戦略はすべて LRU アルゴリズムを使用します。LRU アルゴリズムは、最もアクセス頻度の低いデータを近距離にキャッシュします。将来 データは消去されます。 LRU が人気がある理由は、実装が比較的簡単で、実行時パフォーマンスが良く、ヒット率が高いため、実際の問題に対して非常に実用的であることです。 LRU キャッシュを実装する方法について話しましょう:

  • キャッシュがヒットするたびに、リンクされたリストの先頭に新しいデータが挿入されます (つまり、キャッシュされたデータがアクセスされます)、データをリンク リストの先頭に移動します。
  • リンク リストがいっぱいになったら、リンク リストの末尾のデータを破棄します。
  • LRU キャッシュには次の操作があります:

set(key,value): キーがハッシュマップに存在する場合、最初に対応する値をリセットし、次に対応するノード cur を取得し、cur を削除します。リンク リストからノードを削除し、それをリンク リストの先頭に移動します; キーが にある場合 ハッシュマップが存在しない場合は、新しいノードを作成し、そのノードをリンク リストの先頭に置きます。キャッシュがいっぱいになったら、リンクされたリストの最後のノードを削除するだけです。
  • get(key): キーがハッシュマップに存在する場合は、対応するノードをリンク リストの先頭に置き、対応する値を返します。キーが存在しない場合は、-1 を返します。
LRU と LFU の違い:

LRU は最も最近使用されていないページ置換アルゴリズム (最も最近使用されていない) です。つまり、最初に削除されます。長期間使用されていないページです。このページを使用してください。

LFU は最も使用頻度の低いページ置換アルゴリズム (Least Frequently Used) で、一定期間内にアクセス頻度が最も低かったページを削除することを意味します。

例えば、2番目の方法の周期Tが10分で、1分ごとにページングを行う場合、主記憶ブロックは3、必要なページ方向が2 1 2 1 2 3 4##の場合

# ページ 4 が調整されると、ページ欠落割り込みが発生することに注意してください。

LRU アルゴリズムが使用されている場合は、ページ 1 を変更する必要があります (ページ 1 は長い間使用されていません)。ただし、ページ 3 は LFU アルゴリズムに従って変更される必要があります (10 分以内に、ページ 3 は 1 回しか使用されていません)

要約

キーが次のとおりであることがわかります。 LRU の重要な点は、ページが最後に使用されてからスケジュール設定までの時間の長さを確認することです。

そして、LFU の鍵となるのは、特定の期間内でページが使用される頻度を確認することです。

関連知識の詳細については、

FAQ

列をご覧ください。

以上がlru アルゴリズムと lfu アルゴリズムの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。