对于这么简单的问题,我真的很抱歉。我只是想确保我正确理解 FIFO 缓存模型,我希望有人能帮助我:) 如果缓存已满,LRU 缓存会删除最近最少访问的条目。如果缓存需要可用空间(例如,如果 'a' - 'v' - 'f' - 'k' 是缓存中的条目,而 'a' 是如果需要可用空间,则缓存将删除最旧的条目)。
我对吗?
对于这么简单的问题,我真的很抱歉。我只是想确保我正确理解 FIFO 缓存模型,我希望有人能帮助我:) 如果缓存已满,LRU 缓存会删除最近最少访问的条目。如果缓存需要可用空间(例如,如果 'a' - 'v' - 'f' - 'k' 是缓存中的条目,而 'a' 是如果需要可用空间,则缓存将删除最旧的条目)。
我对吗?
你是对的。
将 FIFO 想象为穿过隧道的汽车。第一辆进入隧道的汽车将是第一个驶出另一侧的汽车。
将 LRU 缓存视为清理车库。你会扔掉你很长一段时间没有使用的物品,并保留你经常使用的物品。该算法的演变(对简单 LRU 的改进)将丢弃长时间未使用的物品,并且如果您毕竟需要更换它们并不昂贵。
是的,LRU 缓存基于最近最少使用缓存中的对象,但 FIFO 是基于对象被缓存的时间。
对,那是正确的。FIFO 意味着先进先出,即严格按照到达顺序考虑(在这种情况下删除)元素。LRU 是最近最少使用的,最长时间没有使用的缓存元素被驱逐(预感很快就不需要了)。