在哪种情况下LFU优于LRU?

时间:2017-06-03 11:39:52

标签: caching lru

我一直试图找到一个好的情况,其中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个故障。

这是一个被接受的案例吗?

1 个答案:

答案 0 :(得分:1)

您可能会发现this有帮助。 LRU是明星前锋。

您的移动键盘使用LFU。当您键入一些字母时,您可以在键盘顶部看到几个与您键入的字母匹配的建议单词。在键盘应用程序的cache为空时,它可能会显示这4个单词(让我们假设您输入字母" STA"。建议的单词可能会像ex。开始一样弹出,立场,雕像,工作人员)。这里的想法是,根据您使用的单词,它会在一段时间后忽略建议中的LRU单词。你可能没有看到" staff"如果您还没有使用它,请稍后提出建议。

如果您知道数据非常具有重复性,请务必使用LFU以避免cache未命中。 看起来这两者都非常清楚,具有独立的意义。这取决于您想要使用其中任何一个的用例。