由买买提看人间百态

topics

全部话题 - 话题: lru
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
w*********t
发帖数: 170
1
来自主题: JobHunting版 - LRU question
class LRU{
private final static int MAX_SIZE= 3;
private Map map;
public LRU(){
map = new LinkedHashMap(MAX_SIZE,0.75F,true){
public boolean removeEldestEntry(Map.Entry eldest){
return map.size() > MAX_SIZE;
}
};
}
public void add(K k,V v){
map.put(k,v);
}

public V get(K k){
return map.get(k);
}

public void printLRU(){
for(V v:map.values()){
... 阅读全帖
k***t
发帖数: 276
2
参照网上的思路写了一个。哪位大拿给Review一下。谢了。
我平时只写C,不用C++。所以可能有初级错误:)
#include
#include // HashMap
#include
using namespace std;
// cache entry
struct Entry {
int v; // dummy structure
};
class LRU {
private:
list > mlist;
unordered_map >::iterator> mht;
int cnt;
const static int MAX_SIZE = 10000;
public:
LRU () {cnt=0;}
~LRU () {}
void addEntry (string mURL, Entry mEntry) {
mlist.push_fron... 阅读全帖
w****o
发帖数: 2260
3
来自主题: JobHunting版 - 软件实现LRU有什么困难么
如果用C++,到底实现 LRU 应该用什么 data structures?
谢谢!
还有在这个版看到 LRU, LRU Cache,他们是一回事,还是不同的东西?
LRU的应用context是memory access,还是硬盘访问的时候用的?
我的问题很弱,别见笑了。
谢谢!
r********7
发帖数: 102
4
之前面试 遇到过LRU 这道题,面试之前准备过,就直接说了 用hashmap 和
linkedlist。 但是实现起来发现很不好处理 删除命令。 由于是最后一题时间有限就
没在写下去。不过最后一再追问下,知道使用Doublelinkedlist。。。
不过感谢国人面试官,还是给过了。 再次鸣谢下。
然后看到leetcode有这道题(稍微有点不一样)就又做了下,还是问题重重,不得不感
叹自己实力的差距, 不过最后还是通过了,代码如下:
1.由于是菜鸟,代码很丑很啰嗦,希望大神们指点要怎么改进。
2.小弟有一事不明,为啥LRU 还要有(key,value)查询? 现实中,不就只有一个
value吗?然后HashMap 存。 现实中的LRU 每个内存有key
这个值吗?
希望帮忙讲解下LRU。
public class LRUCache {
public HashMap table = new
HashMap阅读全帖
c****p
发帖数: 6474
5
来自主题: EE版 - LRU算法?
一个set里的所有entry都设一个计数器,
每次访问这个set的时候,hit的那个entry的计数器清零,同set内的其他entry计数器加
1。
如果set内的访问miss,把计数器值最大的entry换出去。换入的entry计数器为零。
还有个psudo-LRU,硬件代价比LRU小得多,性能比LRU稍差一点儿。。ms现在不少都用的
psudo-LRU。
l*****g
发帖数: 685
6
来自主题: JobHunting版 - Amazon的LRU设计题
最近Amazon面试好像喜欢问LRU (least recently used cache)的设计
我用doubly-linked list 和 hashtable 实现了一个简单的LRU, 抛砖引玉,供大家做
参考。祝大家都顺利拿到offer.
using System;
using System.Collections.Generic;
namespace LRU
{
public class Cache
{
public class Container
{
public Object obj;
public Container next;
public Container prev;
public Container(object o)
{
this.obj = o;
}
}
private const int MaxSize ... 阅读全帖
c****p
发帖数: 6474
7
来自主题: JobHunting版 - 软件实现LRU有什么困难么
数据结构前面说了,hashtable+list,C++的STL容器不太熟,见谅。。。
只要有类似于缓存的机制都会涉及到replacement算法,LRU是性能最接近理想性能的一
种。
cache line和page的replacement都会用到LRU,所以你说的那两个context都可以。
当然实际硬件实现上好像用的不是LRU,而是pLRU。【 在 winhao (勇敢的人) 的大作
中提到: 】
b**********5
发帖数: 7881
8
来自主题: JobHunting版 - LRU适合在电面问吗?
我觉得LRu是应该leetcode medium或者easy的难度。。。 现在的新题, 要比LRU难多
了。。 LRU是老题了。。
就像我10多年前, 面试, 人家问我how to check if there's a cycle in
linkedlist。。。
10多年前, 比较难。。。 现在这种根本就不是题目了。。
S*A
发帖数: 7142
9

everybody
但是你说的那个 Cache LRU 基本上没有被其他的 kernel 服务
用。仅仅是某个驱动自己带进来的。kernel 的 用到 cache 的模块
和代码很多。
你要是感兴趣,那个 struct page 的定义在这里,那个 double link list
的 lru 变量在 96行。
http://lxr.free-electrons.com/source/include/linux/mm_types.h?v
不知道你想问的是那个 table。 kernel MMU 有很多类似 table 的东西。
但是估计不是你想要的那种 lookup table。就我知道 MMU 里和 paging
LRU 绑一起的没有。要是你知道有欢迎指出来。
g*****n
发帖数: 31
10
来自主题: JobHunting版 - Amazon的LRU设计题
LRU cache的insert都在头部。。。
按照LRU的常规做法,getObj之后要移到list的头上吧。。。
g*****n
发帖数: 31
11
来自主题: JobHunting版 - Amazon的LRU设计题
LRU cache,如果已经满了 要insert一个新的 就要把lru(tail)那个干掉。。。
不是double link的话 就不知道下次哪个是tail了。。。

2
r*******k
发帖数: 1423
12
LRU用doubly linked list实现
而这个需要在读的时候锁定这个list
那怎么能做到高并发呢?
我知道memcached对不同大小的map都有各自的slab
有自己的LRU
但仅仅这样就足够了吗?
h*****n
发帖数: 209
13
【 以下文字转载自 Programming 讨论区 】
发信人: hanuman (天竺神猴), 信区: Programming
标 题: 为什么Cache LRU多用doubly linked list而不是single linked list来实现呢?
发信站: BBS 未名空间站 (Thu Oct 23 16:56:37 2014, 美东)
在Cache LRU实现的时候,为什么都是用doubly linked list而不是single linked
list呢?
请大牛赐教。
h*****n
发帖数: 209
14
【 以下文字转载自 Programming 讨论区 】
发信人: hanuman (天竺神猴), 信区: Programming
标 题: 为什么Cache LRU多用doubly linked list而不是single linked list来实现呢?
发信站: BBS 未名空间站 (Thu Oct 23 16:56:37 2014, 美东)
在Cache LRU实现的时候,为什么都是用doubly linked list而不是single linked
list呢?
请大牛赐教。
S*A
发帖数: 7142
15
用数组实现 LRU 有效率问题。
LRU 经常做的一件事是 update 里面的一个 entry。
如果entry 在 list 里面,拿出来,然后放到最前面。
用数组实现的话,添加在头容易,在头指针添加就可以了。
但是如果拿出来的话,原来的位置就会留下一个空洞。
空洞如果不清理,你的数组就会不断长大。如果每次清理,
就要把这个空洞填上,数组前面的元素后移动来填。
这个操作就比较昂贵,因为要移动最坏情况 N 个元素。
g*****g
发帖数: 34805
16
我说的是 LRU, LRU O1的访问时间是必须的。
S*A
发帖数: 7142
17
哦,明白。我还以为你还在说那个 circular buffer.
kernel 里面的比较大的 LRU 就是 active page 的 LRU。
拿个就是 double link list。没有另外的 hash table。
当然 kernel 也不需要访问第几个 item 这样的操作。
S*A
发帖数: 7142
18
你说的这个是另外的实现,kernel paging 没有用这个 lc_cache.
这个 lc_cache 找了一下 reference 大概就是 block driver 里面
某个驱动用了,比较明显的用户只有这一个。和我说的 MMU paging
的 LRU 不是一个东西。这个 LC 看上每个 entry 占内存挺多的。
应该不会用在 page 上面。
LRU 本身并不需要 hashmap。那个是 cache lookup 的时候用的。
这两个是相对独立的东西。说得不对欢迎指正啊。
f*****w
发帖数: 2602
19
来自主题: JobHunting版 - Amazon的LRU设计题
LRU 按理该是怎么操作的? 我看你的代码每次删掉 20%的数据 这样对么? 按我
的理解 应该每次只有一个被踢出去才对
f**********t
发帖数: 1001
20
来自主题: JobHunting版 - 怎么设计分布式LRU cache?
哇,这贴为啥会没回复?
同问。。。并且有没有好的LRU cache的code? 搜到很多但不知好不好
f**********t
发帖数: 1001
21
来自主题: JobHunting版 - 怎么设计分布式LRU cache?
memcache的方法如何实现LRU呢?非分布式可以用double linkedlist + hashtable,但
现在分布在不同server上,能也用一个double linkedlist么?如果不能的话,如何找
到Least recently used?
j**y
发帖数: 462
22
来自主题: JobHunting版 - LRU question
An LRU (least recently used)
May I use LinkedHashMap for the question or I have to define my own data
structure ?
Thanks
g**e
发帖数: 6127
23
来自主题: JobHunting版 - LRU question
you can use LinkedHashMap but you need to understand why it can work as LRU
cache
j**y
发帖数: 462
24
来自主题: JobHunting版 - LRU question
Thanks, seems LinkedHashMap maintain a double linked list and delete/put
the latest access item to the head

LRU
m**q
发帖数: 189
25
来自主题: JobHunting版 - 问个google题: 设计分布的LRU cache
实现分布的LRU cache,要求存取时间O(1)
原帖见:
http://www.mitbbs.com/article_t1/JobHunting/31847453_0_1.html
求解答
Y**B
发帖数: 144
26
来自主题: JobHunting版 - LRU Cache Question
How to use Double Linked List and Hashmap to implement a LRU cache?
A**u
发帖数: 2458
27
谢谢你贴的code
LRU啥意思
c****p
发帖数: 6474
28
来自主题: JobHunting版 - 软件实现LRU有什么困难么
为啥这么多人让小印写LRU
r*****b
发帖数: 310
c********t
发帖数: 5706
30
来自主题: JobHunting版 - 问道关于LRU的题目
啥是LRU? 为啥要用doubly linked list,而不用arraylist?
e******i
发帖数: 106
31
来自主题: JobHunting版 - 问道关于LRU的题目

http://www.codewalk.com/2012/04/least-recently-used-lru-cache-i
具体情况我也不太清楚,看到很多次,今天第一次仔细想想
e******i
发帖数: 106
32
来自主题: JobHunting版 - 问道关于LRU的题目

我偷懒了,只是给了个general 的例子,具体关于LRU的解释可以看WIkihttp://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used
是种Cache的algorithm吧
w*******i
发帖数: 186
33
来自主题: JobHunting版 - 求leetcode LRU Java 解法
楼主早上发过问这道题的贴,没想到这会儿有发了后续问题了。钻研精神先赞一个!
按照rookiecode的结论,看来Iterator(包括ListIterator)这种用来指向对象逻辑地
址的类貌似不管用啊。可是Java偏偏又是屏蔽物理地址的。哎,要怪就怪Java没有提供
C++的list中类似splice的方法吧。。。
话说回来,要是非要展现自己对library的熟练程度,楼主可以考虑使用LinkedHashMap
,这个类专门用于实现LRU的思想。
f********e
发帖数: 100
34
来自主题: JobHunting版 - 请问Leetcode LRU 的难度
咋做也有bug.
http://oj.leetcode.com/problems/lru-cache/
w********p
发帖数: 948
35
来自主题: JobHunting版 - LRU为啥是fifo?
lz概念混乱。
浏览器 和 LRU 没有关系。
D**C
发帖数: 6754
36
来自主题: JobHunting版 - LRU为啥是fifo?
也没说是fifo阿
LRU在java的implementation就是linkedhashmap,跟fifo没啥关系
w********p
发帖数: 948
37
来自主题: JobHunting版 - LRU为啥是fifo?
建议您google下 LRU, browser, fifo 和 stack
a**********0
发帖数: 422
38
来自主题: JobHunting版 - LRU cache 问题
网上有人用你说的数据结构做LRU 我没仔细看 类似的代码一大堆
我估计我的代码一点错误也没有 只是超时而已
l*********8
发帖数: 4642
g***s
发帖数: 3811
40
java has LinkedHashMap, which supports LRU.
a***e
发帖数: 413
d*****5
发帖数: 1920
42
昨天面试被问了LRU cache和Word ladder II。。。。
g********n
发帖数: 447
43
来自主题: JobHunting版 - 类似LRU Cache的题应该怎么练习?
就是类似于LRU Cache的问题,感觉给我这类题,完全无从下手,只有看了答案才知道
该怎么做。
有没有其他类似的题,可以练习?
m******x
发帖数: 58
44
来自主题: JobHunting版 - 类似LRU Cache的题应该怎么练习?
需要对ds比较熟悉。我觉得lru是无准备情况下最能考察ds熟悉程度的题目。
准备方法是详细了解每种ds的big o和实现细节。
g******i
发帖数: 16
45
来自主题: JobHunting版 - 类似LRU Cache的题应该怎么练习?
说实话你静下心来读几个开源系统的代码就都会了。
举个例子,LRU除了楼上几位说的实现,实践中你还得考虑并发,然后展开来如何提高
parallelism,如何设计封锁协议,最后进一步,可以问你,如果每次都new/malloc一
个新的item,然后evict旧的,这个代价是否太大,如何优化,等等。
会hash + array只是一个进本要求,都不用你实现代码,以上只是就是口头提问就能
摸出你的水平了。多认真复习基础知识吧,切题只是一个敲门砖。
g********n
发帖数: 447
46
来自主题: JobHunting版 - 类似LRU Cache的题应该怎么练习?
就是类似于LRU Cache的问题,感觉给我这类题,完全无从下手,只有看了答案才知道
该怎么做。
有没有其他类似的题,可以练习?
m******x
发帖数: 58
47
来自主题: JobHunting版 - 类似LRU Cache的题应该怎么练习?
需要对ds比较熟悉。我觉得lru是无准备情况下最能考察ds熟悉程度的题目。
准备方法是详细了解每种ds的big o和实现细节。
g******i
发帖数: 16
48
来自主题: JobHunting版 - 类似LRU Cache的题应该怎么练习?
说实话你静下心来读几个开源系统的代码就都会了。
举个例子,LRU除了楼上几位说的实现,实践中你还得考虑并发,然后展开来如何提高
parallelism,如何设计封锁协议,最后进一步,可以问你,如果每次都new/malloc一
个新的item,然后evict旧的,这个代价是否太大,如何优化,等等。
会hash + array只是一个进本要求,都不用你实现代码,以上只是就是口头提问就能
摸出你的水平了。多认真复习基础知识吧,切题只是一个敲门砖。
z******g
发帖数: 271
49
可以,没什么不对的
但注意lru不能用rw lock
H******7
发帖数: 1728
50
来自主题: JobHunting版 - 实现lru用LinkedHashMap好么
实现lru用LinkedHashMap好么?
大家一般怎么弄?
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)