Cache
キャッシュアルゴリズム - LRU と LFU キャッシュ置換戦略 、システム性能 とメモリ管理効率 を向上 させるために使用 。
LRU vs LFU 選択ガイド
| 比較項目 | LRU (Least Recently Used) | LFU (Least Frequently Used) |
|---|---|---|
| 原理 | 最近最 も使用 されていない項目 を削除 | 使用頻度 が最 も低 い項目 を削除 |
| 適用場面 | 最近 アクセスしたデータが再度 アクセスされる可能性 がある | 人気 データが長期的 にアクセスされ、不人気 データは早 めに削除 すべき |
| 実装難易度 | 簡単 (双方向 リンクリスト + HashMap) | 複雑 (頻度計算 が必要 、min-heap やカウンタを使用 する場合 あり) |
| 利点 | 低 オーバーヘッド、短期 アクセスパターンに適 している | 長期的 に人気 のデータを保持 可能 |
| 欠点 | Cache Pollution:短期的 に人気 だが後 でアクセスされないデータがキャッシュを占有 | LFU Aging Issue:古 い人気 データが長期間 キャッシュを占有 |
LRU 適用場面
- OS(ページ置換 、CPU キャッシュ)
- ブラウザキャッシュ、データベースキャッシュ、CDN
- 最近 アクセスしたデータが将来 もアクセスされる可能性 がある
LFU 適用場面
- 検索 エンジン、広告配信 、レコメンドシステム
- 長期的 に人気 のコンテンツ(人気映画 、音楽 、ニュース)
- 短期的 に人気 だがすぐに冷 めるデータがキャッシュを占有 するのを回避