iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >lru和lfu算法有什么区别
  • 416
分享到

lru和lfu算法有什么区别

2023-06-14 23:06:39 416人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关lru和lfu算法有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。区别:LRU是最近最少使用页面置换算法,淘汰最长时间未被使用的页面;而LFU是最近最不常

这篇文章将为大家详细讲解有关lru和lfu算法有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

区别:LRU是最近最少使用页面置换算法,淘汰最长时间未被使用的页面;而LFU是最近最不常用页面置换算法,淘汰一定时期内被访问次数最少的页。LRU关键是看页面最后一次被使用到发生调度的时间长短;而LFU关键是看一定时间段内页面被使用的频率。

常见的缓存算法

  • LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。

  • LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。

  • FIFO (Fist in first out) 先进先出, 如果一个数据最先进入缓存中,则应该最早淘汰掉。

LRU缓存

像浏览器的缓存策略、memcached的缓存策略都是使用LRU这个算法,LRU算法会将近期最不会访问的数据淘汰掉。LRU如此流行的原因是实现比较简单,而且对于实际问题也很实用,良好的运行时性能,命中率较高。下面谈谈如何实现LRU缓存:

lru和lfu算法有什么区别

  • 新数据插入到链表头部

  • 每当缓存命中(即缓存数据被访问),则将数据移到链表头部

  • 当链表满的时候,将链表尾部的数据丢弃

LRU Cache具备的操作:

  • set(key,value):如果key在HashMap中存在,则先重置对应的value值,然后获取对应的节点cur,将cur节点从链表删除,并移动到链表的头部;若果key在hashmap不存在,则新建一个节点,并将节点放到链表的头部。当Cache存满的时候,将链表最后一个节点删除即可。

  • get(key):如果key在hashmap中存在,则把对应的节点放到链表头部,并返回对应的value值;如果不存在,则返回-1。

LRU和LFU的区别:

LRU是最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的页面!

LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页!

比如,第二种方法的时期T为10分钟,如果每分钟进行一次调页,主存块为3,若所需页面走向为2 1 2 1 2 3 4

注意,当调页面4时会发生缺页中断

若按LRU算法,应换页面1(1页面最久未被使用) 但按LFU算法应换页面3(十分钟内,页面3只使用了一次)

关于lru和lfu算法有什么区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: lru和lfu算法有什么区别

本文链接: https://www.lsjlt.com/news/275871.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • lru和lfu算法有什么区别
    这篇文章将为大家详细讲解有关lru和lfu算法有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。区别:LRU是最近最少使用页面置换算法,淘汰最长时间未被使用的页面;而LFU是最近最不常...
    99+
    2023-06-14
  • Redis中的LRU算法有什么用
    这篇文章给大家分享的是有关Redis中的LRU算法有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Redis是基于内存存储的key-value...
    99+
    2024-04-02
  • Floyd和dij算法计算最短路径有什么区别
    1.算法基础不同 xFloyd算法基于动态规划思想,用于求解图中所有顶点对之间的最短路径; dij算法是基于贪心思想,主要用于求解从某一源点到图中所有其他顶点的最短路径。 2.时间复杂度不同 xFloyd算法的...
    99+
    2023-10-29
    最短 有什么区别 算法
  • = 和 := 赋值运算符有什么区别?
    实际上,它们都是赋值运算符,用于赋值,但它们之间的显着区别如下 -= 运算符赋值为SET 语句的一部分或作为 UPDATE 语句中 SET 子句的一部分,在任何其他情况下 = 运算符都被解释为比较运算符。另一方面,:= 运算符分配一个值,并...
    99+
    2023-10-22
  • /” 和 “\” 有什么区别
    键盘上的“/” 和 “\”这个两个“斜杠”有什么区别。 通常,“/”被叫作“正斜杠”,英语是forward slash,经常简称为slash。Windows命令用\,中文排版用/。而“\” 被叫作“反斜杠”,英语是backward sla...
    99+
    2023-09-25
    前端 java 服务器 Powered by 金山文档
  • 云计算和虚拟机有什么区别
    云计算和虚拟机的区别是:本质不同,云计算属于一种服务模式或一种交付方式,而虚拟机可能是容器,甚至是真正的物理机;之所以容易混淆虚拟机和云计算,是因为虚拟机确实在云计算中太普遍了,虚拟机是云计算中最活跃的主体,也是核心之一,很多服务都是围绕着...
    99+
    2024-04-02
  • db2和oracle语法有什么区别
    db2和oracle语法区别:1、SQL语法差异,虽然db2和oracle都使用结构化查询语言,但它们在语法方面存在一些差异;2、db2和oracle拥有不同的数据类型;3、外键约束定义,db2可以定义在创建表时或者使用“ALTER TAB...
    99+
    2023-07-10
  • mysql和sqlserver语法有什么区别
    mysql 和 sql server 的语法差异主要体现在数据库对象、数据类型、sql 语句和其他方面。数据库对象差异包括存储引擎和文件组的指定方式、索引和约束的创建。数据类型差异涉及数...
    99+
    2024-04-22
    mysql sqlserver
  • Java递归算法与优化后的算法有什么区别
    本篇内容介绍了“Java递归算法与优化后的算法有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、...
    99+
    2024-04-02
  • php和java语法上有什么区别
    这篇文章给大家分享的是有关php和java语法上有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、PHP支持“//”、“#”和“”注释方式,java支持“//”、“”和“”注释方式。2、java中...
    99+
    2023-06-15
  • PHP函数和方法有什么区别
    今天小编给大家分享一下PHP函数和方法有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP函数是一段可重复使用的代...
    99+
    2023-07-05
  • JavaScript展开运算符和剩余运算符有什么区别
    今天小编给大家分享一下JavaScript展开运算符和剩余运算符有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收...
    99+
    2024-04-02
  • LRU缓存算法的实现方法是什么
    这篇文章主要讲解了“LRU缓存算法的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LRU缓存算法的实现方法是什么”吧!LRU就是Least R...
    99+
    2024-04-02
  • H5和HTML有什么区别
    今天就跟大家聊聊有关H5和HTML有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。h6和html的区别是:1、文档类型声明上,html有很长的一段代码很难记住,而html5只...
    99+
    2023-06-15
  • flash和html5有什么区别
    这篇文章将为大家详细讲解有关flash和html5有什么区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别有:1、html5是Web中HTML的规范,flash是矢量图和Web动画的标准;2、html...
    99+
    2023-06-15
  • asp和html有什么区别
    asp和html有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ASP代表动态服务器页面(Active Server Pages),通常称为Classic ASP或...
    99+
    2023-06-14
  • c和JavaScript有什么区别
    本篇内容介绍了“c和JavaScript有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、C语言主要是被编译成机器语言,而J...
    99+
    2023-06-14
  • javascript和css有什么区别
    javascript和css有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布...
    99+
    2023-06-14
  • js和javascript有什么区别
    小编给大家分享一下js和javascript有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js和javascript之间没有区别,js是javascri...
    99+
    2023-06-15
  • MySQL的@和@@有什么区别
    本篇内容主要讲解“MySQL的@和@@有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的@和@@有什么区别”吧!MySQL的@与@@区别@x ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作