【发布时间】:2011-01-04 16:07:50
【问题描述】:
我有一些 C++ 代码需要使用 LRU 技术实现缓存替换。
到目前为止,我知道两种实现 LRU 缓存替换的方法:
- 每次访问缓存数据时使用timeStamp,最后比较替换时的timeStamp。
- 使用一堆缓存项并将它们移动到顶部,如果它们最近被访问过,那么最后底部将包含 LRU 候选。
那么,哪些更适合用于生产代码?
他们还有其他更好的方法吗?
【问题讨论】:
-
你所说的“更好”是什么意思 - 你必须指定你的标准是什么。另外,看看这个问题stackoverflow.com/questions/1935777/…
-
您可以使用整数来代替时间戳记。当一个元素被访问时,将其设为 0 并增加其他轨道
-
@user 这将是一个糟糕的设计,因为它会使访问成本
O(n)