本文重点
在前面的课程中我们介绍了六个垃圾回收器,分别是新生代的三个以及老年代的三个,本文我们将介绍一个垃圾回收器,它既可以用于新生代又可以用于老年代,这个垃圾回收器就是G1。
G1垃圾回收器的特点
G1是一种服务器端的并发收集垃圾回收器,应用在多处理器和大容量内存环境中,在实现吞吐量的同时(比PO的吞吐量差一些),压缩空闲空间不会延长GC的暂停时间,尽可能地满足垃圾收集暂停时间的要求,它具有预测功能,可以让开发人员根据实际经验设置停顿时间。适用于不需要实现很高的吞吐量、并且需要很快响应时间的场景。
G1的优点
G1能够充分利用多CPU,多核环境硬件优势,尽量缩短STW,可以人为地设置停顿时间。
G1整体上采用标记-整理算法,局部通过复制算法(新生代),针对于老年代,将存活对象从一个区域复制到另外一个区域,这就意味着,G1完成了堆的压缩,至少是部分堆的压缩,这样就不会有CMS内存碎片的问题。
G1下的内存组成
新生代和老年代的比例是不固定的,默认为5%到60%,这个G1会进行自动的调整,比如G1在新生代的垃圾回收时间比较长,那么它可能就会自动调小新生代所占空间的比例。

如上所示,之前我们介绍的六种垃圾回收器会将JVM的堆内存分为新生代和老年代(物理上就是这么分的),而现在不是了,G1物理上不分新生代和老年代,G1只在逻辑上分为新生代和老年代。
本文详细介绍了G1垃圾回收器,它是一种兼顾吞吐量和暂停时间的并发收集器,适用于多处理器环境。G1将堆内存划分为区域,通过预测功能和混合GC(MixedGC)策略,实现高效且低暂停时间的垃圾回收。G1的内存组成包括Eden、Survivor、Old和Humongous区域,并利用RememberedSet和Collection Set优化回收效率。当遇到Full GC时,可通过调整内存、提升CPU性能或改变MixedGC触发阈值来优化。
订阅专栏 解锁全文
738

被折叠的 条评论
为什么被折叠?



