LFU代表最少使用。它是一种缓存算法,用于优化计算机的内存。在这个算法中,系统会记录一个块在内存中被引用的次数。当缓存完全填满并需要更多空间时,则删除具有最低参考频率的项目。
LFU 执行的三个操作是 – Set (insert)、Retrieve(lookup)、Evict(delete)。
执行
一个简单的方法是我们为内存中出现的每个块分配一个计数器。现在,每次块重新出现时,计数器都会增加一。当高速缓存完全填满并且必须插入新块时,具有最小计数器值的块将从高速缓存中移除并插入新值。当该块从高速缓存中移除时,该块的计数器被初始化为零。
特征
- 可以遵循先进先出的方法,即先进先出。
- Min Heap 可用于以对数时间复杂度实现该算法。
- 在高速缓存的访问模式不经常更改的情况下,它是非常系统的。
优点
- 用于在重复数据时查找项目。示例 – 它用于移动键盘中用于建议单词,因此在使用一段时间后,它开始建议那些更常用的单词。
- 在 LFU 旧页面中,检查该页面的频率。
缺点
- 插入缓存中的新项目将很快被删除,因为它们的数量很少,但可以再次非常频繁地使用。
- Belady异常也可能发生。