Java 如何从HashMap中回收堆内存
这是我第一次故意使用内存限制,所以我遇到了问题Java 如何从HashMap中回收堆内存,java,hashmap,heap-memory,Java,Hashmap,Heap Memory,这是我第一次故意使用内存限制,所以我遇到了问题 HashMap <String, double[]> memory = new HashMap<String, double[]>(); if ((heapSize/heapMaxSize)<0.9) memory.put(address, arr); 要插入的内容数量是无限的,因此没有必要增加堆内存大小。所以我只是把它的使用率限制在90%,因为它足以满足我想要实现的目标 这个Has
HashMap <String, double[]> memory = new HashMap<String, double[]>();
if ((heapSize/heapMaxSize)<0.9)
memory.put(address, arr);
要插入的内容数量是无限的,因此没有必要增加堆内存大小。所以我只是把它的使用率限制在90%,因为它足以满足我想要实现的目标
这个HashMap函数被反复调用,我的计划是以某种方式清理堆内存,并再次使用高达90%的空间。但我不知道怎么做。谁能给我点化一下吗
谢谢大家! 好的,我得到了答案
记忆。干净
然后通过
System.gc
然后成功了 基本上,你是想把它用作缓存吗?如果是这样,我会使用为工作设计的东西,例如,答案取决于您如何识别不再需要的条目,并且可以释放。@JonSkeet是的,它对缓存也有类似的作用。我想使用hash是因为它的效率,我不知道cacheapi。我要试试。@dasblinkenlight我只想把里面的东西都擦干净。不仅仅是从HashMap,还完全从内存。为什么,确切地说?当您需要更多内存时,Java的GC会自动为您解决这些问题。亲爱的读者们,这就是为什么Java的“让我们不要反对任何东西”是个坏主意的原因。@soc:这是怎么回事?