13

对于这么简单的问题,我真的很抱歉。我只是想确保我正确理解 FIFO 缓存模型,我希望有人能帮助我:) 如果缓存已满,LRU 缓存会删除最近最少访问的条目。如果缓存需要可用空间(例如,如果 'a' - 'v' - 'f' - 'k' 是缓存中的条目,而 'a' 是如果需要可用空间,则缓存将删除最旧的条目)。

我对吗?

4

3 回答 3

18

你是对的。

将 FIFO 想象为穿过隧道的汽车。第一辆进入隧道的汽车将是第一个驶出另一侧的汽车。

将 LRU 缓存视为清理车库。你会扔掉你很长一段时间没有使用的物品,并保留你经常使用的物品。该算法的演变(对简单 LRU 的改进)将丢弃长时间未使用的物品,并且如果您毕竟需要更换它们并不昂贵。

于 2013-03-26T18:21:13.090 回答
1

是的,LRU 缓存基于最近最少使用缓存中的对象,但 FIFO 是基于对象被缓存的时间。

于 2013-03-26T18:21:12.387 回答
1

对,那是正确的。FIFO 意味着先进先出,即严格按照到达顺序考虑(在这种情况下删除)元素。LRU 是最近最少使用的,最长时间没有使用的缓存元素被驱逐(预感很快就不需要了)。

于 2013-03-26T18:21:26.873 回答