CACHEUS中的SR-LFU和CR-LFU与2Q、ARC对比

2Q

Simplified Version

将缓存分成A1和Am两部分;

每当新访问q:
如果命中:
如果q在A1中被命中,那么从A1中移动到Am的MRU位置;
如果q在Am中被命中,则移动到Am的MRU位置;
如果miss:
如果A1的大小超过了给定阈值,则淘汰A1的尾部元素,新元素进入A1头部;
如果A1大小小于该阈值,则淘汰Am的LRU元素,新元素进入A1头部;

可以看出,这个版本算法并不支持从demotion操作,即Am中的元素进入A1的操作;但是会有Am中的元素被淘汰的情况出现;很显然这个算法中有一个关键的参数,A1的阈值

Full Version

A1进一步被拆成两部分,一部分称为A1in,接受新元素,一部分称为A1out,记录被从A1in淘汰的元素;
A1in继续扮演上面简化版本中A1的角色,而A1out则扮演它的历史队列的角色;

当有访问q出现:
如果命中:
如果在A1in中(do nothing)
如果在Am中,则提到MRU位置
如果miss:
如果在A1out中:
如果A1in大小超过阈值,从A1in中淘汰,淘汰的页记录在A1out,q放在Am头部
如果A1in大小不超过阈值,从Am中淘汰,淘汰的页不被记录,q放在Am头部
如果不在A1out中:
如果A1in大小超过阈值,从A1in中淘汰,淘汰的页记录在A1out,q放在A1in头部
如果A1in大小不超过阈值,从Am中淘汰,淘汰的页不记录,q放在A1in头部

可以看出替换算法部分依然继承了简化版本的模式,也就是不存在demotion操作;不过不同之处在于,A1in中的页即使被命中也不会被提前或进入Am,所以A1in ≠ A1 in Simplified Version,A1(A1in+A1out)整体可以看作以FIFO规则替换。简化版本中没有记录淘汰的页,而完整版本中记录了淘汰的页,相当于把统计频率的窗口扩大了。
当然完整版之于简化版最大的区别还是,A1in中的页被命中既不会被提前也不会被promote到Am中,promote会推迟到页被淘汰出缓存,进入A1out才发生,这才是full version的核心,可是这样的目的是啥呢?
文中对于完整版相较于简化版本的优化是这样解释的:如果有一种访问模式,其中某一些页在一段时间内被频繁地访问,但

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值