我一直试图找到一个好的情况,其中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个故障。
这是一个被接受的案例吗?
答案 0 :(得分:1)
您可能会发现this有帮助。
LRU
是明星前锋。
您的移动键盘使用LFU
。当您键入一些字母时,您可以在键盘顶部看到几个与您键入的字母匹配的建议单词。在键盘应用程序的cache
为空时,它可能会显示这4个单词(让我们假设您输入字母" STA"。建议的单词可能会像ex。开始一样弹出,立场,雕像,工作人员)。这里的想法是,根据您使用的单词,它会在一段时间后忽略建议中的LRU
单词。你可能没有看到" staff"如果您还没有使用它,请稍后提出建议。
如果您知道数据非常具有重复性,请务必使用LFU
以避免cache
未命中。
看起来这两者都非常清楚,具有独立的意义。这取决于您想要使用其中任何一个的用例。