san*_*ity 5 java garbage-collection memory-management
我想创建一个LinkedHashMap,它将根据可用内存限制其大小(即,当freeMemory + (maxMemory - allocatedMemory)达到某个阈值时).这将用作缓存的一种形式,可能使用"最近最少使用"作为缓存策略.
我担心的是,allocateMemory还包括(我假设)未垃圾收集的数据,因此将高估估计已用内存的数量.我担心这可能产生的意外后果.
例如,LinkedHashMap可能会继续删除项目,因为它认为没有足够的可用内存,但可用内存不会增加,因为这些已删除的项目不会立即被垃圾回收.
有没有人有这种类型的经验?我的顾虑值得关注吗?如果是这样,有人可以建议一个好的方法吗?
我应该补充一点,我也希望能够"锁定"缓存,基本上说"好吧,从现在开始不要因为内存使用问题而删除任何东西".
我知道我有偏见,但我真的必须为此强烈推荐我们的MapMaker 。使用 softKeys() 或 softValues() 功能,具体取决于它是键的 GC 集合还是更恰当地描述条目何时可以被清理的值的 GC 集合。
| 归档时间: |
|
| 查看次数: |
3299 次 |
| 最近记录: |