每当堆内存超过特定阈值时,是否可以在 java 中调用强制垃圾收集?
最佳答案
这已经发生了。例如G1GC
,这要么是年轻空间已满(对于较小的集合),要么是 InitiatingHeapOccupancyPercent
被击中(对于主要 Collection )。这两者都是通过标志来控制的,因此您可以准确地判断何时应该触发 GC,IFF 您确实想要这样。
在 Shenandoah
有ShenandoahGCHeuristics
这将选择一些启发式方法(它们也取决于大小)。
ManagementFactory::getMemoryPoolMXBeans
),然后 via an agent call 。一般来说,您需要一个非常充分的理由来执行此操作。
关于堆内存超过阈值后的 Java 垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61110062/