课堂笔记:LRU的改进算法LIRS

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值