非常抱歉,我的问题很简单。我只是想确保我正确理解了先进先出(FIFO)缓存模型,并希望有人能帮助我 :) 如果缓存已满,LRU缓存会删除最近最少使用的条目。如果需要释放空间,则FIFO删除先前添加的条目(?)(例如,如果'a'-'v'-'f'-'k'是缓存中的条目并且'a'是最旧的条目,则缓存将删除'a'如果它需要释放空间)。
我的理解是否正确?
非常抱歉,我的问题很简单。我只是想确保我正确理解了先进先出(FIFO)缓存模型,并希望有人能帮助我 :) 如果缓存已满,LRU缓存会删除最近最少使用的条目。如果需要释放空间,则FIFO删除先前添加的条目(?)(例如,如果'a'-'v'-'f'-'k'是缓存中的条目并且'a'是最旧的条目,则缓存将删除'a'如果它需要释放空间)。
我的理解是否正确?
你说得对。
把FIFO想象成汽车通过一条隧道。最先进入隧道的汽车将会是第一个从另一边出来的。
把LRU缓存想象成清理车库。你会扔掉长时间没用过的物品,保留经常使用的物品。这种算法的进化(简单LRU的改进)是扔掉长时间未使用且不昂贵的物品,如果需要,可以替换它们。
是的,没错。FIFO 意味着先进先出,即按照到达顺序(在这种情况下是删除)严格考虑元素。LRU 是最近最少使用,缓存中最长时间未被使用的元素将被驱逐(因为它可能不会很快被需要)。