有了 CMS,为什么还要引入 G1?
特性 | CMS | G1 |
---|---|---|
设计目标 | 低停顿时间 | 可预测的停顿时间 |
并发性 | 是 | 是 |
内存碎片 | 是,容易产生碎片 | 否,通过区域划分和压缩减少碎片 |
收集代数 | 年轻代和老年代 | 整个堆,但区分年轻代和老年代 |
并发阶段 | 并发标记、并发清理 | 并发标记、并发清理、并发回收 |
停顿时间预测 | 较难预测 | 可配置停顿时间目标 |
容易出现的问题 | 内存碎片、Concurrent Mode Failure | 较少出现长时间停顿 |
CMS 适用于对延迟敏感的应用场景,主要目标是减少停顿时间,但容易产生内存碎片。G1 则提供了更好的停顿时间预测和内存压缩能力,适用于大内存和多核处理器环境。
THE END
暂无评论内容