课堂笔记:LRU的改进算法LIRS
来源:互联网 发布:国信手机炒股软件 编辑:程序博客网 时间:2024/05/09 17:38
LRU(Least Recent Used)是我们在cache替换算法中最普遍使用的算法,在缓存块已满,而需要缓存新的数据块的时候,
这时需要从缓存中找到一个“没有价值”的块用新的数据块去替换它。
LRU的特点是简洁高效,但是缺点是LRU的缺点是不能对weak locality的数据进行缓存
一个印度人的ARC还有LIRSLRU的缺点是不能对weak locality的数据进行缓存。
a. 如果stack size有1000个块,而一个文件是1001个块的大小,而且每次访问都是从头到尾的访问。则LRU的性能非常
差,几乎没有任何缓存。
b. 假设我们要邀请学习好的同学到一个容纳10人的会议室开会。如果是LRU算法的话,会邀请90分以上或者80分以上的人,,但是如果没有80分以上的同学则一个都不邀请,而会议室也就白白浪费了,对于LIRS,邀请
成绩前在10名的同学到会议室。这里会议室为我们的stack ,这样我们的会议室也就是stack至少不会浪费。
所以我们这里边的问题就是如何把一些weak locality的数据也能够缓存起来,使我们的cache得到充分的使用?
2. 两个概念
Reuse: 一个块被使用之后,再次被使用
Recency:一个块被访问后,和上一次访问之间的距离。
LIRS的基本思想是对访问的数据块进行分类,一部分为hot数据块,一部分为cold数据块。对于hot数据块我们可以分配
90%以上的cache给它们。而对于cold数据块给它们分配10%。
本次听课还收获了一些做研究的思路。 jiangsong老师的大概科研思路如下:
a.提出问题:根据一些实验现象,发现现有系统或者算法不足的地方。
b.发现问题:搜集各种实验数据,画成图表,直观的去暴露问题,从而找出现有方法可能的不足之处。
c. 形象化或者生活化的去解决这个问题
d. 把b中发现的问题用数学或者算法的形式进行描述,提出新的观点和概念,论述问题的本质原因。
e. 选择合适的数据结构或者算法去实现d中的解决方案
f. 做测试和分析,对比同类方法。
Thanks
MK
Thanks
MK
- 课堂笔记:LRU的改进算法LIRS
- LRU的改进算法LIRS
- LIRS算法的近似实现
- LIRS算法的近似实现
- LRU-K,2Q,LIRS算法介绍与比较
- LIRS缓存替换算法
- LIRS缓存替换算法
- LIRS缓存替换算法
- Java缓存的Lru算法实现---并对Android util类LruCache的改进
- redis之父的博客翻译-Redis中的LRU算法改进
- LRU算法的实现
- LRU算法的实现
- LRU算法的实现
- LRU算法的实现
- LRU算法的实现
- LRU算法的实现
- Memcached的LRU算法
- Memcached的LRU算法
- Symbian中singleton的实现(多线程)
- ToolTip的使用 winfrom中显示并延迟一定时间消失
- java读取XML文件
- 如何编写C# Windows服务
- BREW按键及其他事件的处理
- 课堂笔记:LRU的改进算法LIRS
- B树、B-树、B+树、B*树都是什么
- 函数说明
- XP系统中无法使用远程登录的解决办法
- Linux系统下TCP keepalive属性查看
- const char,char const,const char*,char* const
- 常识
- BREW 学习笔记
- 某人语录