美文网首页
3.5.6CMS收集器(gold_axe)

3.5.6CMS收集器(gold_axe)

作者: 胖达_4b7e | 来源:发表于2020-03-22 19:19 被阅读0次

    CMS[并发标记清除]收集器(老年代:标记-清除)
    并发(大多数时间)
    并行
    目标:
    缩短停顿时间

    CMS的步骤

    1.初始标记(短STW)

    就标记下根能直接关联到的对象, 很快

    2.并发标记

    遍历整个对象图, 花费时间长, 还好能和用户线程并发,但是用户线程会降低吞吐量, 这个并发难免的

    3.重新标记(短STW)

    就是对并发时候新产生变化的修正, 这里是用增量更新来修正, 就是 把并发标记时 记下来的 有新增的引用的对象开始重新扫描一遍

    4.并发清除

    用标记清除, 花费时间长 ,还好和用户线程并发


    缺点

    1.用户线程吞吐量下降

    并发不可避免的

    2.可能会 并发失败

    无法处理浮动垃圾, 就是收集时用户线程在新产生的垃圾,
    因为要和用户线程并发, 所以必须留内存给用户线程用,
    需要设置一个阈值, 不是快全满才来发动垃圾回收, 而是到一定百分比(可调)就来收
    如果留的内存不够用, 就是并发失败, STW 用最古老的Serial 来收集了

    3.标记-清除产生的碎片

    可以设置开启Full GC 事 要合并整理内存, 但是这个过程是STW, 停顿时间又变长
    或者设置, 多少次Full GC 以后合并整理

    相关文章

      网友评论

          本文标题:3.5.6CMS收集器(gold_axe)

          本文链接:https://www.haomeiwen.com/subject/xbgvyhtx.html