一、核心设计目标
CMS:尽可能减少STW(Stop-The-World)时间,实现与用户线程的高并发。
G1:兼顾低延迟和高吞吐量,在大内存场景下提供可预测的停顿时间。
二、内存管理模型
CMS
G1
三、GC 算法流程
CMS:
四、STW 时间与性能
维度 | CMS | G1 |
---|---|---|
STW 时间 | 并发标记和清除阶段不 STW,但最终标记可能较长(尤其是堆大时)。 | 筛选回收阶段可控制 STW 时间(通过-XX:MaxGCPauseMillis参数)。 |
内存碎片 | 标记 - 清除算法导致碎片化,可能触发 Full GC。 | 标记 - 整理算法(筛选回收阶段),减少碎片。 |
吞吐量 | 并发阶段不影响用户线程,但 GC 线程与用户线程竞争 CPU。 | 筛选回收时需 STW,但可通过调整 Region 数量优化。 |
五、优缺点对比
CMS:
G1:
建议:
参与评论
手机查看
返回顶部