【发布时间】:2015-04-09 01:07:54
【问题描述】:
所以我在这里拥有的是一个 java 程序,它处理大量数据并将其存储到对象中(主要是哈希映射)。在运行时间的某个时间点,数据变得无用,我需要丢弃,以便释放一些内存。
我的问题是丢弃这些数据以进行垃圾收集的最佳行为是什么?
我已经尝试了 map.clear(),但是这不足以清除地图分配的内存。
编辑(添加我尝试过的替代方案)
我也尝试过 system.gc() 来强制垃圾收集器运行,但是没有帮助
【问题讨论】:
-
内存未清除,对象变为未引用。如果您的程序需要更多内存,则发生垃圾收集,它不可用,然后启动 GC 并回收所有未引用的对象。对于一些 Java 程序来说,GC 很可能在程序运行时永远不会发生,因为不需要更多内存。
-
"这不足以清除地图分配的内存"。你是怎么得出这个结论的?
标签: java memory memory-management garbage-collection hashmap