LFU算法族
文章平均质量分 72
夜雨落花
这个作者很懒,什么都没留下…
展开
-
LFU算法族:LFU-Aging(LFUDA)算法
LFU算法族目录汇总:LFU算法LFU-Aging算法(本文)window-LFU算法1、原理 LFUDA(LFU with dynamic aging),是LFU算法对于缓存污染问题的优化算法。它为缓存引用次数增加了“时间因子”的概念,用来适应缓存使用场景的变化。 LFUDA并没有真的为每次引用记录一个时间,这样开销太大的。LFUDA是通过引入了引用次数的“老化”机制来引入“时间因子”的。LFU会动态持有一个平均引用次数,数值是当前所有缓存引用次数的平均值。当平均引用次...原创 2021-02-09 17:34:56 · 1196 阅读 · 0 评论 -
LFU算法族:LFU算法
1、原理LFU(LeastFrequentlyUsed)算法根据访问缓存的历史频率来淘汰数据,即“如果数据过去被访问的频率很高,那么将来被访问的频率也会很高”。2、数据结构 一般会维护两个数据结构:哈希:用来提供对外部的访问,查询效率更高; 链表:维护了对元素访问次数的排序 缓存操作导致的链表变化:添加新元素:新元素访问次数为1,放到队尾; 缓存淘汰:从队尾开始淘汰,因为队尾元素的访问次数最少; 访问缓存:访问缓存会增加元素的访问次数,所以元素在链表中的位置...原创 2021-02-09 15:18:04 · 11562 阅读 · 0 评论 -
LFU算法族:window-LFU
1、LFU算法的不足 LFU(LeastFrequentlyUsed)是一种缓存淘汰算法。LFU算法是根据缓存的访问频率,去淘汰访问次数最低的缓存。这样就给LFU带来了两个问题:不可避免的问题:对于每个缓存项,LFU都需要记录其访问次数,这导致了LFU需要一笔不小的额外内存开销; 可一定程度避免的问题:对于记录的访问次数,LFU要对其进行排序,用于淘汰访问次数最低的算法。而对大量数据的排序,则会带来一定的处理器开销。当然,这个开销可以通过在每次操作时调整排序顺序,来避免在内存淘汰时...原创 2021-01-27 20:58:47 · 1438 阅读 · 3 评论