垃圾收集器可以被调用多少次?

How many times can the Garbage Collector be called?

我们可以在单个 Java 程序中多次调用垃圾收集器吗?

如果您所说的“调用垃圾收集器”是指“调用 System.gc() -- 您可以随意调用它。它可能会产生一些效果,也可能会产生 none。根据具体情况,它可能会使您的应用程序性能更好,也可能会使事情变得更糟。

现代 Java 实现旨在 运行 具有完全透明的 GC。我的经验是,尽管调用 gc() 几乎总是会引起 JVM 的某种响应,但几乎总是不会促使 GC 起作用——它通常不会被完全忽略。

我见过使用重复调用 gc() 来克服应用程序中的错误(通常与资源管理相关)的应用程序;甚至偶尔会出现 JVM 中的错误。

不过,总的来说,我希望如果您发现您的应用程序需要经常触发 GC,那么肯定是某些地方出了问题,而现在,很可能是应用程序出了问题。