2012-11-28 166 views

回答

3

通常情况下,我已经看到一个MFU缓存用作主节点,由使用LRU替换算法(MRU缓存)的二级缓存支持。这个想法是,最近使用的东西将保留在主缓存中,以便快速访问。这可以减少在很少数量的项目被频繁使用时在MRU缓存中看到的“流失”。它也可以防止那些常用的项目被从缓存中驱逐出来,仅仅因为它们还没有被使用一段时间。

如果您有非常频繁引用的少量项目以及很少引用的大量项目,MFU可以很好地工作。例如,一个典型的桌面用户可能有三个或四个他每天使用多次的程序,以及他很少使用的数百个程序。如果你想通过在记忆程序中缓存来提高他的体验,以便他们能够快速启动,那么最好是缓存那些他经常使用的东西。另一方面,如果您有大量基本上随机引用的项目,或者某些项目的访问次数稍多于某些项目,或者项目通常是批量引用的(即项目A多次访问的次数超过了短期,然后根本不),那么LRU高速缓存驱逐计划可能会更好。

1

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

在这个算法,该页面还没有被使用的时间最长,必须更换。

优势LRU页面置换算法的:

  1. 它是经得起完整的统计分析。
  2. 从来没有患过Belady的异常。

最具频率(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 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