【发布时间】:2010-11-03 01:09:43
【问题描述】:
Java 有 gets you 99% there to an LRU cache 的 LinkedHashMap。
是否有 LRU 缓存的 Javascript 实现,最好来自信誉良好的来源,即:
- 可以理解
- 高效(摊销 O(1) 获取/放置/删除)
?我一直在网上搜索,但找不到;我以为我在 Ajax Design Patterns 上找到了一个,但它掩盖了 sendToTail() 方法并且具有 O(n) 性能(大概是因为队列和关联数组是分开的)。
我想我可以自己写,但我已经明白,为核心算法重新发明轮子可能会危害一个人的健康:/
【问题讨论】:
-
使用循环缓冲区和 Map 对象,这是垃圾收集友好和异步缓存未命中:github.com/tugrul512bit/LruJS/blob/main/lrucache.js(它是 LRU 的 CLOCK-2-hand 版本)。只有 1 颗星,所以它比零星声誉更好:)
标签: javascript algorithm caching lru