缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)分析
2024-08-22 10:55:21
缓存算法是指令序列,用于决定缓存系统中哪些数据应该被删去。
常见类型包括LFU、LRU、ARC、FIFO、MRU。
一、最不经常使用算法(Least Frequently Used-LFU):
它是基于“如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小”的思路实现的。这个缓存算法一般实现内部都会使用一个计数器来记录条目被访问的频率,然后依据计数器访问数值比较,把最小的条目首先被移除。这个方法并不经常使用,因为它无法对一个拥有最初高访问率之后长时间没有被访问的条目缓存负责。
二、最近最少使用算法(Least Recently used -LRU):
这个缓存算法将最近使用的条目存放到靠近缓存顶部的位置。当一个新条目被访问时,LRU将它放置到缓存的顶部。当缓存达到极限时,较早之前访问的条目将从缓存底部开始被移除。
三、自适应缓存替换算法(Adaptive Replacement Cache-ARC)
在IBM Almaden研究中心开发,这个缓存算法同时跟踪记录LFU和LRU,以及驱逐缓存条目,来获得可用缓存的最佳使用。
四、先进先出算法(First In First Out-FIFO):
FIFO是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
五、最近最常使用算法(MRU):
这个缓存算法最先移除最近最常使用的条目。一个MRU算法擅长处理一个条目越久,越容易被访问的情况。
最新文章
- silk mpu
- iOS 代码控制iPhone&;iPad旋转
- CRM 2011 Install Errors - Tips and Tricks continued(转)
- Web 安全的短板
- 93、App Links (应用程序链接)实例
- “我爱淘”冲刺阶段Scrum站立会议2
- Spring事务总结
- 你所不知道的ref
- jcom2在win7 X86上操作Excel
- 常用排序算法之——选择排序(C语言+VC6.0平台)
- Create a simple REST web service with Python--转载
- 用lsb_release -a 查看linux版本
- JS图标插件
- 动态注册HttpModule
- Linux CentOS设置定时重启:crontab
- C++输出格式
- 关于js作用域问题
- 用php的chr和ord函数实现字符串和ASCII码互转
- 系统变量之System.getenv()和System.getProperty()
- 配置多个版本的jdk
热门文章
- [Python] Unofficial Windows Binaries for Python Extension Packages
- Linux下getsockopt/setsockopt 函数说明
- Android自定义字体
- 从0开始:Windows内核利用的另一种方式
- 【EF框架】另一个 SqlParameterCollection 中已包含 SqlParameter。
- liunx trac 插件使用之DateFieldPlugin
- css笔记 - 张鑫旭css课程笔记之 overflow 篇
- 跟bWAPP学WEB安全(PHP代码)--SQL注入的一些技巧
- CSS 让 fontawesome 图标字体变细
- VC++ 多线程编程,win32,MFC 例子(转)