4.10-替换算法
需要替换算法的原因
程序运行一段时间后,Cache存储空间被占满,当再有新的数据要调入时,就需要通过某种机制决定替换的对象
集中常见的替换算法
- 先进先出-FIFO
- 最不经常使用法-LFU
- 近期最少使用法-LRU
- 随机替换法
先进先出算法-FIFPO
需要有个计数器,来标记进去的次数
每次载入数据对应的标记都会加一,当第三次命中依然要加一,当16进入时候,满了,所以找到标记最大的那个值是22,踢出,载入16
最不经常使用法—LFU
同样要设置一个计数器,当Cache技术块每次使用一次,加一
当4进入的时候16和19都是第一次,但是19先进来的,所以淘汰19,当3进来的时候4和16,16是先进来的所以淘汰16
近期最少使用算法—LRU
需要一个时间单元计数值,每次载入加一,每次命中减一
当16进入的时候,需要淘汰计数值最大的那个值11,并替换
替换算法的抖动- 以FIFO为例
即将访问的数据就是被淘汰的数据
替换算法的实现方式
- 硬件实现:需要考虑成本问题
- 软件实现:需要考虑查找效率如何优化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通