为什么调用System.gc()是不好的做法?后答疑关于如何Java中的无强制对象(这家伙正在清除1.5GB的HashMap)System.gc(),有人告诉我打电话是不好的做法System.gc()手工操作,但这些评论并不完全令人信服。另外,似乎没有人敢投我的票,也不敢投我的票。我在那里被告知这是一种糟糕的做法,但后来我也被告知垃圾收集器的运行不会有系统地停止这个世界,而且它也可以有效地被JVM作为一个提示使用,所以我有点不知所措。我确实理解,当JVM需要回收内存时,它通常比您更清楚。我也明白,担心几千字节的数据是愚蠢的。我也明白,即使是兆字节的数据也不是几年前的那样。但还是1.5G?而你知内存中有大约1.5GB的数据,而不是黑暗中的镜头。是System.gc()有系统的坏,还是有什么时候,它变得好起来?所以问题实际上是双重的:为什么打电话不是不好的做法?System.gc()?在某些实现下,它实际上只是对JVM的一个提示,还是始终是一个完整的集合周期?真的有垃圾收集器实现可以在不停止世界的情况下完成他们的工作吗?请解释一下人们在对我的评论中所作的各种断言。回答.门槛在哪里?是吗绝不可能打电话的好主意System.gc()或者有时候是可以接受的?如果是,那是什么时候?
3 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您有许多无法访问的对象,并且可能没有GC‘ed。和 你认为用户现在可以忍受一个小小的减速。
inline
添加回答
举报
0/150
提交
取消
