• 注册
当前位置:1313e > 默认分类 >正文

特殊的日子(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/



本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录