我有一些 C++ 代码需要使用 LRU 技术实现缓存替换。
到目前为止,我知道两种实现 LRU 缓存替换的方法:
- 每次访问缓存数据时使用timeStamp,最后比较替换时的timeStamps。
- 使用一堆缓存项,如果最近访问它们,则将它们移动到顶部,因此最后底部将包含 LRU Candidate。
那么,其中哪一个更适合用于生产代码?
他们还有其他更好的方法吗?
原文由 sud03r 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是LRU缓存的一个非常简单的实现
https://github.com/lamerman/cpp-lru-cache 。
它易于使用并了解其工作原理。代码的总大小约为 50 行。
原文由 Alexander Ponomarev 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答494 阅读✓ 已解决
最近,我使用散列映射上的链表实现了 LRU 缓存。
它的优点是对于所有重要操作都是 O(1)。
插入算法: