MFU(最常用)页面替换算法何时比LRU(最少使用)具有更好的性能?什么时候比LRU差? 在哪里可以找到MFU页面替换算法基本定义之外的信息?
答案 0 :(得分:5)
通常,我看到一个MFU缓存用作主要缓存,由使用LRU替换算法(MRU缓存)的二级缓存支持。我们的想法是,最近使用的东西将保留在主缓存中,从而可以非常快速地访问。当非常频繁地使用少量项目时,这会减少您在MRU缓存中看到的“流失”。它还可以防止这些常用项目从缓存中逐出,因为它们暂时没有使用过。
如果你有非常频繁引用的少量项目,以及很少引用的项目,MFU运行良好。例如,一个典型的桌面用户可能有三到四个他每天使用很多次的程序,以及他很少使用的数百个程序。如果你想通过缓存内存程序来改善他的体验,以便他们能够快速启动,那么你最好缓存他经常使用的那些东西。
另一方面,如果您有大量基本上随机引用的项目,或者某些项目的访问次数略多于,或者项目通常是批量引用的(即项目A在短时间内被多次访问)期间,然后根本没有),那么LRU缓存驱逐计划可能会更好。
答案 1 :(得分:1)
最近最少使用(LRU)页面替换算法
在此算法中,必须替换最长时间未使用的页面。
LRU页面替换算法的优点:
大多数频率(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 1