我读了很多关于不良做法的文章,要求System.gc()
。
据我所知,JVM
对此电话会有任何反应。
而且我知道System.gc()
是从根本上破坏了代码的非常好的指标。
但是,如果我有Web后端服务器,我需要在服务器负载阶段处理许多资源。加载内存充满垃圾后。
我知道我的服务器只会在Hotspot
JDK1.8
的Ubuntu中使用,JDK
会对System.gc()
做出反应。
在加载后和我为用户打开服务器之前,只调用一次System.gc()
是不是很糟糕?
是否有人做同样的事情?
答案 0 :(得分:4)
根本不需要打电话。它不能保证它会做任何事情,并且保证在可以抛出OutOfMemoryException
之前执行GC。如果它确实做了某些事情,可能会浪费CPU时间。
答案 1 :(得分:1)
可以致电System.gc()
。请使用内存分析工具检查它是否有助于您的情况。
规范无法保证任何结果,因为vm可能只是完成了GC。