版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guoweimelon/article/details/50855351

一、概念介绍

LRU和LFU都是内存管理的页面置换算法。

LRU,即:最近最少使用淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的页面。

LFU,即:最不经常使用淘汰算法(Least Frequently Used)。LFU是淘汰一段时间内,使用次数最少的页面。

二、例子详解

假设LFU方法的时期T为10分钟,访问如下页面所花的时间正好为10分钟,内存块大小为3。

若所需页面顺序依次如下:

2  1  2  1  2  3  4

---------------------------------------->

当需要使用页面4时,内存块中存储着1、2、3,内存块中没有页面4,就会发生缺页中断,而且此时内存块已满,需要进行页面置换。

若按LRU算法,应替换掉页面1。因为页面1是最长时间没有被使用的了,页面2和3都在它后面被使用过。

若按LFU算法,应换页面3。因为在这段时间内,页面1被访问了2次,页面2被访问了3次,而页面3只被访问了1次,一段时间内被访问的次数最少。

可见LRU关键是看页面最后一次被使用到发生替换的时间长短,时间越长,页面就会被置换; 而LFU关键是看一定时间段内页面被使用的频率(次数),使用频率越低,页面就会被置换。

也就是说: LRU算法适合:较大的文件比如游戏客户端(最近加载的地图文件) LFU算法适合:较小的文件和教零碎的文件比如系统文件、应用程序文件 其中:LRU消耗CPU资源较少,LFU消耗CPU资源较多。

最新文章

  1. 发现meta有个刷新页面的办法。
  2. 添加群组表AppGroup和群组详细表AppGroupDetails
  3. 用Win7自带的磁盘管理工具给硬盘分区
  4. js阻止冒泡及jquery阻止事件冒泡示例介绍
  5. RabbitMQ链接不上异常
  6. hibernate--lazy(懒加载)属性
  7. 简化版可用于多线程的logger
  8. 位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)
  9. linux sar查看网络流量
  10. html5 存储篇(一)
  11. Chronodex:视觉时间管理,让你的生活更有序
  12. CQOI2015 解题报告
  13. [Python学习之路] 猜大小游戏
  14. js-图片轮播(极简)
  15. loadrunner 运行场景-命令行运行场景
  16. CAP与Base理论
  17. 2G内存编译android4.0
  18. Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow
  19. 【TCP/IP详解 卷一:协议】第十八章 TCP连接 的建立与终止 (2)其余内容
  20. spring cloud kubernetes之serviceaccount permisson报错

热门文章

  1. 【LOJ】#2526. 「HAOI2018」苹果树
  2. Going Home
  3. 应用Mongoose开发MongoDB(1)数据库连接
  4. JAVA 画图板实现(基本画图功能+界面UI)二、功能实现及重绘实现
  5. Docker化高可用redis集群
  6. maven配置文件中modules的作用
  7. BZOJ2888 : 资源运输
  8. 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
  9. SSH公钥登录原理
  10. spring cloud 学习(1) - 基本的SOA示例