Java 12 - 垃圾收集增强功能


Java 12 对其垃圾收集算法引入了多项增强功能。

JEP 189 – Shenandoah:低暂停时间垃圾收集器(实验)

引入了实验性低暂停时间垃圾收集器 Shenandoah 来减少 GC 暂停时间。它与运行的 java 线程并行工作。这有助于减少 GC 对堆大小的依赖并使其保持一致。现在,对于 2 MB 和 2 GB 堆空间,垃圾收集暂停时间将相似。

Shenandoah 预计将成为 Java 15 主要 JAVA 版本的一部分。

JEP 346 – 立即返回未使用的提交内存

在 Java 12 中,如果应用程序处于非活动状态,G1 将处理 Java 堆空间,并可能将内存释放给操作系统。这种先发制人的Behave可以节省并释放内存。

JEP 344:可流产的混合收藏

在 Java 12 中,G1 效率得到了提高。现在,如果 G1 混合集合超过定义的暂停限制,则它们会被中止。现在混合集合分为强制集合和可选集合。G1收集器可以优先考虑强制集来检查暂停时间目标。