调用 System.gc() 的好习惯

Good practice to call System.gc()

我读了很多关于打电话的坏习惯的文章System.gc()

我了解 JVM 不保证会对此调用做出反应。

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

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

而且我知道我的服务器将仅在 Ubuntu 和 Hotspot JDK1.8 中使用,并且此 JDKSystem.gc() 做出反应。

在加载之后和为用户打开服务器之前只调用一次 System.gc() 不好吗?

有没有人做同样的事情?

可以打电话给System.gc()。请务必使用内存分析工具来检查它是否对您的情况有所帮助。

规范无法保证任何结果,因为虚拟机可能刚刚完成了一次 GC。

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