问题标签 [lru]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - LRU用于文件系统缓存?
我了解到,由于计算开销,真正的 LRU 没有在虚拟内存系统中实现。那么,为什么 LRU 算法在文件缓存中是可行的呢?
我认为原因可能是 inode 中的时间字段。那是对的吗?
c# - 如何限制 BlockingCollection 大小但不断添加新项目(.NET 有限大小 FIFO)?
我想限制 BlockingCollection 的大小。如果我想添加另一个项目并且集合已满,则必须删除最旧的项目。是否有特定于此任务的类或我的解决方案可以?
EDIT1:类似的问题:ThreadSafe FIFO List with Automatic Size Limit Management
c++ - 在 C++ 中实现 LRU 缓存 - 编译错误
我需要在 C++ 中实现 LRU 缓存。我有这段代码,编译时遇到问题:
编译结果:
有人可以告诉我如何解决“stdext”问题吗?我想它会解决其余的错误。天呐!
java - LinkedHashSet 实现 LRU
我想删除 a 的最旧成员LinkedHashSet
,我知道有一个removeEldestEntry
方法我必须重写(Java doc for removeEldestEntry
),但我想我必须定义initial capacity
并且load factor
我不在乎,我只是想删除最近最少访问的元素(这里的访问是指put
当它已经在集合中或被读取时)
有什么办法不覆盖removeEldestEntry
吗?
android - Canvas:尝试在 Android 2.3 上使用回收的位图 RuntimeException
我构建了一个自定义视图(类似于网格视图),它显示了许多许多图像,因此回收位图是此应用程序的必要条件。我正在使用 Lru 缓存(在下面实现)来处理位图回收。当我在 Android 2.3 设备上测试这个(并快速滚动)时,我收到以下错误消息并且应用程序崩溃了。在弄清楚如何复制该错误后,我在 Android 4.0 上对其进行了测试,它运行良好。
我跟踪了这个错误,结果发现我在将位图设置为 ImageView 之前检查了位图是否被回收。但是,位图在该步骤和 draw() 步骤之间被回收,从而导致错误。
这是我的缓存:
关于为什么这会在 Android 2.3 而不是 4.0 上失败的任何想法?
caching - LRU和LFU有什么区别
LRU和LFU缓存实现有什么区别?
我知道 LRU 可以使用LinkedHashMap
. 但是如何实现 LFU 缓存呢?
python - 硬盘python上的LRU缓存
我希望能够像使用functools.lru_cache那样装饰一个函数,但是,我希望将结果缓存在硬盘驱动器上而不是内存中。环顾四周,我觉得这是一个已解决的问题,我想知道是否有人能指出我正确的方向(或者至少再给我几个关键词来尝试谷歌搜索)
我不知道这是否会有所帮助或是否重要,但该功能是从唯一的文件名计算图像。
c++ - 如何 LRU 缓存由 C++ STL 重结构构成的众多对象?
我有大型 C++/STL 数据结构 (myStructType),其中包含叠层列表和映射。我有很多这种类型的对象,我想用一个键进行 LRU 缓存。我可以在需要时从磁盘重新加载对象。此外,它必须在运行在 BSD 平台上的多处理高性能应用程序中共享。
我可以看到几个解决方案:
- 我可以考虑一个生命周期排序列表,
pair<size_t lifeTime, myStructType v>
加上一个映射到 o(1) 从它的键访问列表中所需对象的索引,我可以使用 shm 和 mmap 来存储所有内容,并使用一个锁来管理访问(cf在这里)。 - 我可以使用为 LRU 配置的 redis 服务器,并将我的数据结构重新设计为 redis 键/值和键/列表对。
- 我可以使用为 LRU 配置的 redis 服务器,并将我的数据结构 (myStructType) 序列化为使用 redis 管理的简单键/值。
当然可能还有其他解决方案。您将如何做到这一点,或者更好的是,您如何成功地做到这一点,同时牢记高性能?
另外,我想避免像 Boost 这样的重度依赖。
java - LRU 在java中快速实现的最佳方法
我想构建一个快速的 LRU 缓存。这种解决方案是做到这一点的好方法吗?那么同步呢?
有一个名为 removeEldestEntry 的受保护方法。将项目添加到地图时调用此方法。默认实现只返回 false。但我可以继承 LinkedHashMap 并重写此方法以检查是否已达到最大大小,然后返回 true。LinkedHashMap 将通过链表找到最旧的条目并在添加新条目之前启动它。
谢谢