调用System.gc()的好习惯

时间:2015-02-02 06:06:52

标签: java garbage-collection jvm

我读了很多关于不良做法的文章,要求System.gc()

据我所知,JVM对此电话会有任何反应。

而且我知道System.gc() 从根本上破坏了代码的非常好的指标

但是,如果我有Web后端服务器,我需要在服务器负载阶段处理许多资源。加载内存充满垃圾后。

我知道我的服务器只会在Hotspot JDK1.8的Ubuntu中使用,JDK会对System.gc()做出反应。

在加载后和我为用户打开服务器之前,只调用一次System.gc()是不是很糟糕?

是否有人做同样的事情?

2 个答案:

答案 0 :(得分:4)

根本不需要打电话。它不能保证它会做任何事情,并且保证在可以抛出OutOfMemoryException之前执行GC。如果它确实做了某些事情,可能会浪费CPU时间。

答案 1 :(得分:1)

可以致电System.gc()。请使用内存分析工具检查它是否有助于您的情况。

规范无法保证任何结果,因为vm可能只是完成了GC。