
G1Garbage-First是JDK 9起成为默认的服务端垃圾回收器主打在可控停顿时间内实现高吞吐量适配大内存场景。一、核心内存布局G1把整个堆内存划分为约2048个大小1~32MB的等大Region每个Region可动态扮演Eden、Survivor或老年代角色不再要求新生代/老年代物理连续。二、完整回收流程初始标记STW标记GC Roots直接关联的对象并发标记与用户线程并行遍历标记全堆存活对象最终标记STW处理并发阶段的对象引用变化筛选回收STW按回收价值排序优先回收垃圾占比最高的Region快速释放大量空间三、核心优缺点优势支持自定义最大停顿目标-XX:MaxGCPauseMillis用标记-整理算法避免内存碎片适配6GB以上大内存场景劣势RSet记忆集占堆内存约20%内存占用偏高对CPU负载要求更高吞吐量略低于Parallel GC四、关键调优要点停顿控制-XX:MaxGCPauseMillis默认200ms设置过小会导致频繁回收反而降低吞吐量线程配置ParallelGCThreads取CPU核心数50%~70%适配CPU密集型业务避免线程过多引发上下文切换Region大小G1HeapRegionSize推荐8~16MB平衡小对象处理效率和元数据开销