堆内存超过阈值后的 Java 垃圾收集

标签 java garbage-collection heap-memory java-heap

每当堆内存超过特定阈值时,是否可以在 java 中调用强制垃圾收集?

最佳答案

已经发生了。例如G1GC ,这要么是年轻空间已满(对于较小的集合),要么是 InitiatingHeapOccupancyPercent被击中(对于主要 Collection )。这两者都是通过标志来控制的,因此您可以准确地判断何时应该触发 GC,IFF 您确实想要这样。

ShenandoahShenandoahGCHeuristics这将选择一些启发式方法(它们也取决于大小)。

另一方面,如果您想以编程方式执行此操作(已经有工具可以执行此操作),您可以编写一些代码来检查堆的大小(例如通过 ManagementFactory::getMemoryPoolMXBeans ),然后 via an agent call 。一般来说,您需要一个非常充分的理由来执行此操作。

关于堆内存超过阈值后的 Java 垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61110062/

相关文章:

java - 在 JSF 2.0 中检索其他组件的客户端 ID

java - "submethod"中的局部变量

java - 最大和最小整数 - Deitel 的 Java 书中的练习

java - 堆转储中的对象创建时间

java - 将通用类注释为 JSF 托管 bean

Java "for"语句实现阻止垃圾收集

haskell - 如何在 Haskell 中优化软实时应用程序的垃圾收集?

java - 垃圾收集器何时会删除使用单例模式的对象的实例?

java - Java 中的最大堆大小

java - java中的内存不足错误