4.10-替换算法

需要替换算法的原因

图形用户界面

描述已自动生成

程序运行一段时间后,Cache存储空间被占满,当再有新的数据要调入时,就需要通过某种机制决定替换的对象

集中常见的替换算法

  1. 先进先出-FIFO
  2. 最不经常使用法-LFU
  3. 近期最少使用法-LRU
  4. 随机替换法

先进先出算法-FIFPO

需要有个计数器,来标记进去的次数

图表

中度可信度描述已自动生成

每次载入数据对应的标记都会加一,当第三次命中依然要加一,当16进入时候,满了,所以找到标记最大的那个值是22,踢出,载入16

最不经常使用法—LFU

同样要设置一个计数器,当Cache技术块每次使用一次,加一

图形用户界面, 应用程序

描述已自动生成

当4进入的时候16和19都是第一次,但是19先进来的,所以淘汰19,当3进来的时候4和16,16是先进来的所以淘汰16

近期最少使用算法—LRU

需要一个时间单元计数值,每次载入加一,每次命中减一

图形用户界面, 应用程序

描述已自动生成

当16进入的时候,需要淘汰计数值最大的那个值11,并替换

替换算法的抖动- 以FIFO为例

即将访问的数据就是被淘汰的数据

图形用户界面, 应用程序

描述已自动生成

替换算法的实现方式

  1. 硬件实现:需要考虑成本问题
  2. 软件实现:需要考虑查找效率如何优化
posted @   Smile_Children  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示