浏览 3611 次
锁定老帖子 主题:LRU缓存
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-15
本次来一个具有实用意义的实现: 1.通过大根堆记录key值的访问次数 2.定期重置访问次数(LRU周期) 3.访问元素时,不直接修改其访问次数,而是将其访问记录加入到一个列表中(降低主调线程的工作量) 4.后台线程定期将访问历史列表中的记录取出,并合适的修改其记录器在堆中的位置 附连接: http://cjf068.iteye.com/blog/1454228 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-03-19
直接extends LinkedHashMap
然后在构造方法里调用super(capacity, DEFAULT_LOAD_FACTOR, true); 然后覆盖方法 protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { return size() > capacity; } 不就是一个LRU了 |
|
返回顶楼 | |
发表时间:2012-03-19
freish 写道 直接extends LinkedHashMap
然后在构造方法里调用super(capacity, DEFAULT_LOAD_FACTOR, true); 然后覆盖方法 protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { return size() > capacity; } 不就是一个LRU了 +1 |
|
返回顶楼 | |
发表时间:2012-03-19
freish 写道 直接extends LinkedHashMap
然后在构造方法里调用super(capacity, DEFAULT_LOAD_FACTOR, true); 然后覆盖方法 protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { return size() > capacity; } 不就是一个LRU了 呵呵,我稀饭造轮子,谢谢 |
|
返回顶楼 | |
发表时间:2012-04-01
org.apache.commons.collections.map.LRUMap
|
|
返回顶楼 | |