问题标签 [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.

0 投票
1 回答
665 浏览

caching - LRU用于文件系统缓存?

我了解到,由于计算开销,真正的 LRU 没有在虚拟内存系统中实现。那么,为什么 LRU 算法在文件缓存中是可行的呢?

我认为原因可能是 inode 中的时间字段。那是对的吗?

0 投票
0 回答
331 浏览

python - python中的LRU模拟逻辑问题

我试图在 python 中进行LRU分页算法使用模拟。作为 bash 的参数,我们采用 2 个参数,帧数和页数。我相信实施没问题,程序正在运行,但是写出结果存在问题。我对python不太流利,所以也许我做错了什么或者我错过了什么?没有语法错误,这是合乎逻辑的错误,所以如果有人可以在这里帮助我,那对我来说很重要。帮助.PLS。

但是这里是代码:

它应该如何打印结果! 应该如何

这就是现在的打印方式: 现在如何打印

0 投票
2 回答
2264 浏览

c# - 如何限制 BlockingCollection 大小但不断添加新项目(.NET 有限大小 FIFO)?

我想限制 BlockingCollection 的大小。如果我想添加另一个项目并且集合已满,则必须删除最旧的项目。是否有特定于此任务的类或我的解决方案可以?

EDIT1:类似的问题:ThreadSafe FIFO List with Automatic Size Limit Management

0 投票
1 回答
1127 浏览

c++ - 在 C++ 中实现 LRU 缓存 - 编译错误

我需要在 C++ 中实现 LRU 缓存。我有这段代码,编译时遇到问题:

编译结果:

有人可以告诉我如何解决“stdext”问题吗?我想它会解决其余的错误。天呐!

0 投票
1 回答
5758 浏览

java - LinkedHashSet 实现 LRU

我想删除 a 的最旧成员LinkedHashSet,我知道有一个removeEldestEntry方法我必须重写(Java doc for removeEldestEntry ),但我想我必须定义initial capacity并且load factor我不在乎,我只是想删除最近最少访问的元素(这里的访问是指put当它已经在集合中或被读取时)

有什么办法不覆盖removeEldestEntry吗?

0 投票
1 回答
2083 浏览

android - Canvas:尝试在 Android 2.3 上使用回收的位图 RuntimeException

我构建了一个自定义视图(类似于网格视图),它显示了许多许多图像,因此回收位图是此应用程序的必要条件。我正在使用 Lru 缓存(在下面实现)来处理位图回收。当我在 Android 2.3 设备上测试这个(并快速滚动)时,我收到以下错误消息并且应用程序崩溃了。在弄清楚如何复制该错误后,我在 Android 4.0 上对其进行了测试,它运行良好。

我跟踪了这​​个错误,结果发现我在将位图设置为 ImageView 之前检查了位图是否被回收。但是,位图在该步骤和 draw() 步骤之间被回收,从而导致错误。

这是我的缓存:

关于为什么这会在 Android 2.3 而不是 4.0 上失败的任何想法?

0 投票
4 回答
62464 浏览

caching - LRU和LFU有什么区别

LRULFU缓存实现有什么区别?

我知道 LRU 可以使用LinkedHashMap. 但是如何实现 LFU 缓存呢?

0 投票
1 回答
212 浏览

python - 硬盘python上的LRU缓存

我希望能够像使用functools.lru_cache那样装饰一个函数,但是,我希望将结果缓存在硬盘驱动器上而不是内存中。环顾四周,我觉得这是一个已解决的问题,我想知道是否有人能指出我正确的方向(或者至少再给我几个关键词来尝试谷歌搜索)

我不知道这是否会有所帮助或是否重要,但该功能是从唯一的文件名计算图像。

0 投票
1 回答
647 浏览

c++ - 如何 LRU 缓存由 C++ STL 重结构构成的众多对象?

我有大型 C++/STL 数据结构 (myStructType),其中包含叠层列表和映射。我有很多这种类型的对象,我想用一个键进行 LRU 缓存。我可以在需要时从磁盘重新加载对象。此外,它必须在运行在 BSD 平台上的多处理高性能应用程序中共享。

我可以看到几个解决方案:

  1. 我可以考虑一个生命周期排序列表,pair<size_t lifeTime, myStructType v>加上一个映射到 o(1) 从它的键访问列表中所需对象的索引,我可以使用 shm 和 mmap 来存储所有内容,并使用一个锁来管理访问(cf在这里)。
  2. 我可以使用为 LRU 配置的 redis 服务器,并将我的数据结构重新设计为 redis 键/值和键/列表对。
  3. 我可以使用为 LRU 配置的 redis 服务器,并将我的数据结构 (myStructType) 序列化为使用 redis 管理的简单键/值。

当然可能还有其他解决方案。您将如何做到这一点,或者更好的是,您如何成功地做到这一点,同时牢记高性能?

另外,我想避免像 Boost 这样的重度依赖。

0 投票
3 回答
1174 浏览

java - LRU 在java中快速实现的最佳方法

我想构建一个快速的 LRU 缓存。这种解决方案是做到这一点的好方法吗?那么同步呢?

有一个名为 removeEldestEntry 的受保护方法。将项目添加到地图时调用此方法。默认实现只返回 false。但我可以继承 LinkedHashMap 并重写此方法以检查是否已达到最大大小,然后返回 true。LinkedHashMap 将通过链表找到最旧的条目并在添加新条目之前启动它。

谢谢