前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LRU算法

LRU算法

作者头像
狼啸风云
发布2022-06-08 17:58:20
3470
发布2022-06-08 17:58:20
举报

这两种算法均常用于缓存替换策略,其目的是保证缓存的优化性能,保证缓存透明性。当缓存中的空间被填满后,缓存替换策略将选择缓存中某些单元从缓存中剔除,并将现在需要使用的单元填入缓存。缓存替换策略在执行过程中会导致一定的延迟,延迟公式如下:

  • T 表示平均延迟时间
  • m 表示缺页率 (1 - 命中率)
  • Tm 访问主存所需的时间
  • Th 访问缓存时所耗费的延迟时间
  • E 其他次要影响

其中,关乎T

的主要两个参数为Th 和 m,即在缓存中数据的查找时间以及缓存命中率。同样的,这两个参数也决定着缓存的优化性能。这两个参数的优劣取决于缓存替换策略。一个好的缓存替换策略,能够保证尽可能多的有用的数据存在于缓存,使得提升缓存的命中率。缓存中数据的查找时间,主要描述当发起一次数据读写请求后,需要多长时间缓存才能得以反馈信息,该参数取决于缓存的编址策略,如Cache直接映射、全相联映射和组相联映射。 不同的缓存替换策略这两个参数的取值也不同。

Least Recently Used(最近最少使用策略 LRU)

将最近最少使用的单元首先替换出缓存。该算法要求跟踪记录每个单元最近一次使用的时间,当缓存空间被占满,则从缓存的记录中选择最近最少使用的单元进行替换。为实现该算法,实现的技术通常是维护一个“生存时间”表,最近最少使用情况可通过该表得出。当有一个新的单元进驻缓存时,“生存时间”表中将标记当前时间(以递增整数代替时间)。一种示例如下:

进驻顺序依次为: A B C D E D F

可以看出,当A B C D进驻缓存时,由于缓存尚未填满,因此依次填入,并未有替换行为的发生。当E即将进驻缓存时,缓存空间已被占满,因此将最近最少使用的A替换出(由于A的“生存时间”为1,少于缓存中其他所有单元的“生存时间”)以此类推。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Least Recently Used(最近最少使用策略 LRU)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档