为什么缓存使用最近使用 (MRU) 算法作为逐出策略?
我知道MRU的算法及其反向最近最少使用(LRU)。
我认为LRU是合理的,因为LRU元素意味着它将来至少会被使用。但是,MRU元素意味着该元素将来很有可能被使用,为什么要将其逐出?合理的情况是什么?
我知道MRU的算法及其反向最近最少使用(LRU)。
我认为LRU是合理的,因为LRU元素意味着它将来至少会被使用。但是,MRU元素意味着该元素将来很有可能被使用,为什么要将其逐出?合理的情况是什么?
想象一下,当公共汽车到达公共汽车站时,您正在根据公共汽车号码(或您使用的任何标识符)查找公共汽车的详细信息。
可以合理地认为,如果你刚刚看到36号巴士,你不太可能立即看到另一辆巴士,而不是看到其他一辆停在那里的巴士。
举个例子,但这个想法更一般:在某些情况下,“刚刚看到的东西”是一个很好的指标,表明你不太可能很快再次看到同样的事情。
也许一个更具体的例子是媒体服务器。当用户看完视频(假设它是电视节目的一集)时,他们可能最不可能再次观看它。因此,如果您必须逐出某些内容,请逐出最近查看的项目。
但在实践中,我相信这种类型的缓存通常与LRU或LFU缓存一起使用,其中两个缓存串联允许您涵盖各种情况。