Java 12 垃圾回收增强
Java 12引入了多个增强功能来优化其垃圾回收算法。
JEP 189 – Shenandoah:低暂停时间垃圾回收器(实验性)
引入了一种实验性的低暂停时间垃圾回收器Shenandoah,以减少GC暂停时间。它与运行中的Java线程并行工作,从而减少了GC对堆大小的依赖,使其更加稳定。现在,2MB和2GB堆空间的垃圾回收暂停时间将相似。
Shenandoah预计将成为Java 15的主要Java版本的一部分。
JEP 346 – 迅速返回未使用的分配内存
在Java 12中,如果应用程序处于非活动状态,G1将处理Java堆空间,并可能将内存释放给操作系统。这种主动行为有助于节约和释放内存。
JEP 344:可中止的混合收集
在Java 12中,改进了G1的效率。现在,如果混合收集超过定义的暂停限制,G1可以中止混合收集。现在,混合收集被分为强制性和可选性。G1收集器可以优先处理强制集,以实现暂停时间目标。