gpt4 book ai didi

java - 基于可用内存限制大小的 LRU LinkedHashMap

转载 作者:搜寻专家 更新时间:2023-11-01 00:53:45 24 4
gpt4 key购买 nike

我想创建一个 LinkedHashMap,它将根据可用内存限制其大小(即,当 freeMemory + (maxMemory - allocatedMemory) 低于某个阈值时)。这将用作一种缓存形式,可能使用“最近最少使用”作为缓存策略。

但我担心的是 allocatedMemory 还包括(我假设)非垃圾收集数据,因此会高估已用内存量。我担心这可能会产生意想不到的后果。

例如,LinkedHashMap 可能会继续删除项目,因为它认为没有足够的可用内存,但可用内存不会增加,因为这些已删除的项目不会立即被垃圾回收。

有没有人有这方面的经验?我的担心有道理吗?如果是这样,谁能提出一个好的方法?

我应该补充一点,我还希望能够“锁定”缓存,基本上是说“好吧,从现在开始不要因为内存使用问题而删除任何东西”。

最佳答案

我知道我有偏见,但我真的必须强烈推荐我们的 MapMaker为了这。使用 softKeys() 或 softValues() 功能,具体取决于它是键的 GC 集合还是更恰本地描述何时可以清理条目的值的 GC 集合。

关于java - 基于可用内存限制大小的 LRU LinkedHashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1646257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com