【发布时间】:2017-11-04 17:25:09
【问题描述】:
我一直在努力寻找 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 个故障。
这是一个被接受的案例吗??
【问题讨论】:
-
LRU 对于小缓存更有效,但对大缓存的扩展性很差。其中,缓存的典型 Zipf 工作负载占主导地位,因此 LFU 通常在较低容量下具有较高的命中率。 LRU 在扫描(例如数据库)中也存在问题,并且经常被绕过。现代政策将两者结合起来,以找到更理想的平衡点。