MFU和LRU页面替换算法的比较

时间:2012-11-28 03:21:31

标签: algorithm page-replacement

MFU(最常用)页面替换算法何时比LRU(最少使用)具有更好的性能?什么时候比LRU差? 在哪里可以找到MFU页面替换算法基本定义之外的信息?

2 个答案:

答案 0 :(得分:5)

通常,我看到一个MFU缓存用作主要缓存,由使用LRU替换算法(MRU缓存)的二级缓存支持。我们的想法是,最近使用的东西将保留在主缓存中,从而可以非常快速地访问。当非常频繁地使用少量项目时,这会减少您在MRU缓存中看到的“流失”。它还可以防止这些常用项目从缓存中逐出,因为它们暂时没有使用过。

如果你有非常频繁引用的少量项目,以及很少引用的项目,MFU运行良好。例如,一个典型的桌面用户可能有三到四个他每天使用很多次的程序,以及他很少使用的数百个程序。如果你想通过缓存内存程序来改善他的体验,以便他们能够快速启动,那么你最好缓存他经常使用的那些东西。

另一方面,如果您有大量基本上随机引用的项目,或者某些项目的访问次数略多于,或者项目通常是批量引用的(即项目A在短时间内被多次访问)期间,然后根本没有),那么LRU缓存驱逐计划可能会更好。

答案 1 :(得分:1)

最近最少使用(LRU)页面替换算法

在此算法中,必须替换最长时间未使用的页面。

LRU页面替换算法的优点:

  1. 可以进行全面的统计分析。
  2. 永远不要遭遇Belady的异常。
  3. 大多数频率(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