GC版本进化时间轴
Java对内存划分这些年发生了巨大变化
最早经典版本严格物理划分,年轻代与老年代依靠分代回收,MinorGC频繁执行,停顿时间波动很大。
后来推出G1收集器,开始改用区域化堆内存布局G1
逻辑上分代不在固定边界,可灵活调配内存区域
再到初代ZGC,直接彻底取消分代,统一整块块堆管理
依靠染色指针实现并发回收,做到亚毫秒级超低停顿
JDK 21推出重磅升级,诞生逻辑分代ZGC,兼顾低延迟优势,又保留分袋回收,高效清理年轻对象
如今,JDK23默认分带ZGC成为主流最优选择
Java对内存划分这些年发生了巨大变化
最早经典版本严格物理划分,年轻代与老年代依靠分代回收,MinorGC频繁执行,停顿时间波动很大。
后来推出G1收集器,开始改用区域化堆内存布局G1
逻辑上分代不在固定边界,可灵活调配内存区域
再到初代ZGC,直接彻底取消分代,统一整块块堆管理
依靠染色指针实现并发回收,做到亚毫秒级超低停顿
JDK 21推出重磅升级,诞生逻辑分代ZGC,兼顾低延迟优势,又保留分袋回收,高效清理年轻对象
如今,JDK23默认分带ZGC成为主流最优选择