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数据块给

LRU缓存算法虽然简单高效,但存在无法有效处理weak locality数据的问题。文章介绍了LIRS(Low Inter-reference Recency Set)算法,这是一种改进策略,旨在更好地缓存weak locality数据。LIRS将数据分为hot和cold两类,优化了内存利用率。同时,分享了科研思路,包括提出问题、发现现象、形象化解决问题、定义新概念、选择算法实现和测试分析的过程。
最低0.47元/天 解锁文章
6123

被折叠的 条评论
为什么被折叠?



