Caching 在哪种情况下,LFU优于LRU?

Caching 在哪种情况下,LFU优于LRU?,caching,lru,Caching,Lru,我一直在寻找一个好的例子,LFU比LRU好,但我不确定 我所做的(但不确定这是否是一个好的例子)是这样的情况:当您有一个容量为3的缓存,并且缓存请求为4(类似于B C D),但C和D的请求更频繁 因此,如果请求流是abcdcdcdcdcabacdcd LRU将产生10个故障,但LFU将产生9个故障 这是一个公认的案例吗???您可能会觉得很有帮助。 LRU非常先进 您的移动键盘使用LFU。当您键入一些字母时,您可以在键盘顶部看到一些与您键入的字母相匹配的建议单词。开始时,当键盘应用程序的缓存为空时

我一直在寻找一个好的例子,LFU比LRU好,但我不确定

我所做的(但不确定这是否是一个好的例子)是这样的情况:当您有一个容量为3的缓存,并且缓存请求为4(类似于B C D),但C和D的请求更频繁

因此,如果请求流是
abcdcdcdcdcabacdcd
LRU将产生10个故障,但LFU将产生9个故障

这是一个公认的案例吗???

您可能会觉得很有帮助。
LRU
非常先进

您的移动键盘使用
LFU
。当您键入一些字母时,您可以在键盘顶部看到一些与您键入的字母相匹配的建议单词。开始时,当键盘应用程序的
缓存为空时,它可能会向您显示这4个单词(假设您键入了字母“STA”。建议的单词可能会弹出,例如start、stand、station、staff)。这里的想法是,根据您使用的单词,它将在一段时间后忽略建议中的
LRU
单词。如果您没有使用过“staff”这个词,那么您可能不会在以后的建议中看到它

如果您知道数据是非常重复的,那么一定要选择
LFU
以避免
cache
遗漏。
看来,这两者都是非常明确的独立性和孤立的意义。这取决于您希望在何处使用这些缓存的用例。

LRU对于小型缓存更有效,但对于大型缓存的扩展性较差。在这些情况下,缓存的典型Zipf工作负载占主导地位,因此LFU通常在较低容量下具有较高的命中率。LRU在扫描(如数据库)中也有问题,通常被绕过。现代政策将两者结合起来,以找到更理想的平衡。