我一直在寻找一个合适的案例来证明LFU比LRU更好,但我不确定。
我所做的是(但不确定是否是一个好例子)当您拥有一个缓存容量为3且缓存请求为4(如A B C D),但C和D被经常请求时。
因此,如果请求流是A B C D C A D B D C A B A C D
LRU将产生10个故障,而LFU将产生9个故障。
这是一个被接受的案例吗?
我一直在寻找一个合适的案例来证明LFU比LRU更好,但我不确定。
我所做的是(但不确定是否是一个好例子)当您拥有一个缓存容量为3且缓存请求为4(如A B C D),但C和D被经常请求时。
因此,如果请求流是A B C D C A D B D C A B A C D
LRU将产生10个故障,而LFU将产生9个故障。
这是一个被接受的案例吗?
您可能会发现this有用。
LRU
非常直观。
您的移动键盘使用LFU
。当您输入一些字母时,您可以在键盘顶部看到与您已输入的字母匹配的几个建议单词。在开始时,当键盘应用程序的cache
为空时,它可能会向您显示这4个单词(假设您输入了字母“STA”。建议的单词可能会弹出,例如开始、站立、雕像、工作人员)。这里的想法是,基于您使用的单词,它将在一定时间后忽略建议中的LRU
单词。如果您没有使用它,您以后可能不会在建议中看到“staff”这个词。
如果您有一个情况,在那里您知道数据非常重复,一定要选择LFU
以避免cache
错过。
这两者似乎都相互独立并具有隔离意义。它取决于您想要使用任何一个的用例。