LRU思路
LRU原则是在没有命中缓存的时候,将最近未使用的内存交换出去,很容易的思路就是用一个时间来计算时间差,这样的效率明显不够。可以换一下思路,就是简单的一个缓存链表中,每次如果命中缓存的话,就将相对应的结点放到链表的末尾,那这样在链表的头永远都是未使用的,那就直接将第一个结点替换出去就可以了,然后将这个结点在挪到链表的末尾。
还要解决命中率的效率,那就用hash将结点储存起来。
LRU思路
LRU原则是在没有命中缓存的时候,将最近未使用的内存交换出去,很容易的思路就是用一个时间来计算时间差,这样的效率明显不够。可以换一下思路,就是简单的一个缓存链表中,每次如果命中缓存的话,就将相对应的结点放到链表的末尾,那这样在链表的头永远都是未使用的,那就直接将第一个结点替换出去就可以了,然后将这个结点在挪到链表的末尾。
还要解决命中率的效率,那就用hash将结点储存起来。