CMS并发标记清除的GC选择有何特点?

2026-05-23 22:200阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计677个文字,预计阅读时间需要3分钟。

CMS并发标记清除的GC选择有何特点?

CMS收集器+并发标记清除+并发阶段标记清除+利用标记-清除算法+压缩技术,降低并发阶段开销,算法适用于老龄化及长期区(新生代使用ParNew)-XX:+UseConcMarkSweepGC 运行。

CMS收集器 Concurrent Markup Sweep 并发标记清除

使用了标记-清除算法与标记-压缩相比,并发阶段会降低吞吐量

算法作用在老年代以及永久区(新生代使用ParNew)

-XX:+UseConcMarkSweepGC

CMS运行过程

1.初始标记(用户线程停止)

根可以关联到的对象

速度快

2.并发标记(和用户线程一起)

主要标记过程,标记全部对象

3.重新标记(用户线程停止)

由于并发标记时,用户线程依然进行因此在正式清理前,再做修正。

4.并发清除(和用户线程一起)

基于标记结果,直接清理对象

特点:

1.尽可能降低停顿

2.会影响系统整体吞吐量和性能

比如,在用户线程运行过程中,分一半CPU去做CMS GC,系统性能在GC阶段,反应速度就下降一半。

3.清理不彻底。

在清理阶段,用户线程还在执行,会产生新的垃圾,无法清理。

4.因为和用户线程一起执行,不能在空间将满时再清理。

阅读全文

本文共计677个文字,预计阅读时间需要3分钟。

CMS并发标记清除的GC选择有何特点?

CMS收集器+并发标记清除+并发阶段标记清除+利用标记-清除算法+压缩技术,降低并发阶段开销,算法适用于老龄化及长期区(新生代使用ParNew)-XX:+UseConcMarkSweepGC 运行。

CMS收集器 Concurrent Markup Sweep 并发标记清除

使用了标记-清除算法与标记-压缩相比,并发阶段会降低吞吐量

算法作用在老年代以及永久区(新生代使用ParNew)

-XX:+UseConcMarkSweepGC

CMS运行过程

1.初始标记(用户线程停止)

根可以关联到的对象

速度快

2.并发标记(和用户线程一起)

主要标记过程,标记全部对象

3.重新标记(用户线程停止)

由于并发标记时,用户线程依然进行因此在正式清理前,再做修正。

4.并发清除(和用户线程一起)

基于标记结果,直接清理对象

特点:

1.尽可能降低停顿

2.会影响系统整体吞吐量和性能

比如,在用户线程运行过程中,分一半CPU去做CMS GC,系统性能在GC阶段,反应速度就下降一半。

3.清理不彻底。

在清理阶段,用户线程还在执行,会产生新的垃圾,无法清理。

4.因为和用户线程一起执行,不能在空间将满时再清理。

阅读全文