小编mar*_*kus的帖子

Java - 为什么强制垃圾收集不释放内存

我正在生成一个大型数据结构并将其写入硬盘.之后我想摆脱对象,减少内存消耗.我的问题是,在我强制进行垃圾收集后,使用的内存量至少与垃圾收集前一样高.我添加了一个最小的工作示例,我正在做什么.

DataStructure data = new DateStructure();
data.generateStructure(pathToData);
Writer.writeData(data);
WeakReference<Object> ref = new WeakReference<Object>(data);
data = null;
while (ref.get() != null) {
    System.gc();
}
Run Code Online (Sandbox Code Playgroud)

代码应强制对数据对象进行垃圾收集,因为它在线程中是推荐的:
强制Java中的垃圾收集?
我知道这个垃圾收集确实保证了数据对象的删除,但是在过去我通过使用链接中描述的垃圾收集使用简单的System.gc()更成功.

也许有人有一个答案,它是摆脱大型物体的最佳方式.

java memory garbage-collection

3
推荐指数
1
解决办法
2879
查看次数

标签 统计

garbage-collection ×1

java ×1

memory ×1