MFU (最常用)页面替换算法什么时候比LRU (最不常用)有更好的性能?什么时候比LRU更糟糕?除了MFU页面替换算法的基本定义之外,我还可以在哪里找到信息?
发布于 2012-11-28 12:48:10
通常,我见过使用MFU缓存作为主缓存,并由使用LRU替换算法的辅助缓存( MRU缓存)支持。其想法是,最近使用的内容将保留在主缓存中,从而提供非常快速的访问。这减少了在频繁使用少量项目时在MRU缓存中看到的“流失”。它还可以防止那些常用的项仅仅因为一段时间没有使用而被从缓存中逐出。
如果您有少量经常被引用的项,而有大量不经常被引用的项,则MFU效果很好。例如,一个典型的桌面用户可能有三到四个程序,他每天使用很多次,而数百个程序是他很少使用的。如果您想通过在内存程序中缓存来改善他的体验,以便它们可以快速启动,那么您最好将他经常使用的那些东西缓存起来。
另一方面,如果您有大量基本上是随机引用的项,或者某些项的访问频率略高于,或者项通常是批量引用的(即项A在短时间内被多次访问,然后根本不访问),那么LRU缓存回收方案可能会更好。
发布于 2013-04-12 17:42:13
最近最少使用(LRU)页面替换算法
在此算法中,必须替换未使用时间最长的页面。
LRU页面替换算法的优点:
完全统计的analysis.
使用最频繁(MFU)的页面替换算法
实际上,MFU算法认为使用最频繁的页面不会立即被需要,因此它将替换MFU页面
示例:考虑以下引用字符串:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
缓冲区大小:3字符串:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 0 4 2 2 0 0 2 2 2 0 0 7 7 7
0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1https://stackoverflow.com/questions/13597246
复制相似问题