特殊的日子(2015年5月1日劳动节)纪念回归和新的征程,用LRU和LFU两个小算法原理和区别来抛砖引玉

简介: 很久没有写过新的博客了,原因有很多,冠冕堂皇的理由就是工作忙,生活忙,各种累,直白一点其实就是变懒了,所以没有写。在沉寂了这么长一段时间过后,终于又要重新出发了,对于自己当前的状态,觉得首先要有所沉淀,然后就是要放空自己,唯有放空自己方能继续进步。
+关注继续查看

很久没有写过新的博客了,原因有很多,冠冕堂皇的理由就是工作忙,生活忙,各种累,直白一点其实就是变懒了,所以没有写。

在沉寂了这么长一段时间过后,终于又要重新出发了,对于自己当前的状态,觉得首先要有所沉淀,然后就是要放空自己,唯有放空自己方能继续进步。


以后一段时间更新的博客内容主体是与Android Framework相关的疑难问题分析、机制实现的原理、源代码调用分析,然后伴有一些常用的小算法,语言特性,程序原理等。

今天就先介绍LRU和LFU这两个在Android的Framework以及App中比较常用的缓存算法的思想原理,其实这些缓存算法的原理思想和Linux中的虚拟内存页面置换算法思想是一致的,只不过具体的不同。

LFU(Least Frequently Used使用频率最少算法,思路和原则是如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小,这种算法的目的通俗直接一点理解就是:当发生缓存内容需要更新并且已经存满时,快速的找到并替换截止到当前整个缓存中使用频率也就是次数最少的内容。

LRU(Least Recently Used):最近最久未使用算法,思路和原则是如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小,这种算法的目的通俗直接一点理解就是:当发生缓存内容需要更新并且已经存满时,快速的找到截止到当前整个缓存中最长时间没有被使用的内容,然后将其删除并重构缓存的结构,将释放出的内存位置存入更新的内容。


参考链接:

http://www.cnblogs.com/dolphin0520/p/3749259.html

http://www.cnblogs.com/dolphin0520/p/3741519.html

http://blog.sina.com.cn/s/blog_631d3a630101mhup.html

http://qyappchentao.sinaapp.com/linux-mem-al/

http://blog.sina.com.cn/s/blog_50197c290101ft7a.html

http://blog.csdn.net/summerhust/article/details/6867171

http://dennis-zane.iteye.com/blog/128278

http://blog.csdn.net/luoweifu/article/details/8297084/



目录
相关文章
|
5月前
|
存储 缓存 算法
【软考学习13】图解页面淘汰算法,先进先出算法、最近最少使用算法
【软考学习13】图解页面淘汰算法,先进先出算法、最近最少使用算法
|
6月前
|
存储 缓存 算法
实现一个LRU真的好难呐
实现一个LRU真的好难呐
58 0
|
7月前
|
C++
【C++】如何克服红黑树的恐惧?看这篇文章足够了(下)
【C++】如何克服红黑树的恐惧?看这篇文章足够了(下)
29 0
|
7月前
|
C++
【C++】如何克服红黑树的恐惧?看这篇文章足够了(上)
【C++】如何克服红黑树的恐惧?看这篇文章足够了(上)
41 0
|
机器学习/深度学习 算法 程序员
初入算法(2)—— 进入算法世界
本章将会继续在初入算法(1)——进入算法世界 的基础上继续通过趣学算法进行算法的学习。
89 1
初入算法(2)—— 进入算法世界
|
存储 自然语言处理 算法
初入算法(1)—— 进入算法世界
了解算法,学习算法,应用算法
96 0
初入算法(1)—— 进入算法世界
|
机器学习/深度学习 缓存 算法
面试高频算法详解-LRU
面试高频算法详解-LRU
面试高频算法详解-LRU
|
存储 缓存 算法
面试高频考题——手撸一个 LRU 算法!
今天给大家讲一道面试中经常容易遇到的一道题:“手写一个 LRU 算法”。
119 0
面试高频考题——手撸一个 LRU 算法!
|
存储 缓存 算法
漫画:什么是LRU算法?
用户信息当然是存在数据库里。但是由于我们对用户系统的性能要求比较高,显然不能每一次请求都去查询数据库。 所以,小灰在内存中创建了一个哈希表作为缓存,每次查找一个用户的时候先在哈希表中查询,以此提高访问性能。
120 0
漫画:什么是LRU算法?