美文网首页
垃圾回收器了解吗?年轻代和⽼年代都有哪些垃圾回收器?

垃圾回收器了解吗?年轻代和⽼年代都有哪些垃圾回收器?

作者: 嘘寒问暖 | 来源:发表于2022-05-11 23:38 被阅读0次
    各个版本垃圾回收器

    年轻代的垃圾收集器包含有Serial、ParNew、Parallell,⽼年代则包括Serial Old⽼年代版本、CMS、Parallel Old⽼年代版本和JDK11中的船新的G1收集器。

    Serial:单线程版本收集器,进⾏垃圾回收的时候会STW(Stop The World),也就是进⾏垃圾回收的时候其他的⼯作线程都必须暂停

    ParNew:Serial的多线程版本,⽤于和CMS配合使⽤

    Parallel Scavenge:可以并⾏收集的多线程垃圾收集器

    Serial Old:Serial的⽼年代版本,也是单线程

    Parallel Old:Parallel Scavenge的⽼年代版本

    CMS(Concurrent Mark Sweep):CMS收集器是以获取最短停顿时间为⽬标的收集器,相对于其他的收集器STW的时间更短暂,可以并⾏收集是他的特点,同时他基于标记-清除算法,整个GC的过程分为4步。

    1. 初始标记:标记GC ROOT能关联到的对象,需要STW

    2. 并发标记:从GCRoots的直接关联对象开始遍历整个对象图的过程,不需要STW

    3. 重新标记:为了修正并发标记期间,因⽤户程序继续运作⽽导致标记产⽣改变的标记,需要STW

    4. 并发清除:清理删除掉标记阶段判断的已经死亡的对象,不需要STW从整个过程来看,并发标记和并发清除的耗时最⻓,但是不需要停⽌⽤户线程,⽽初始标记和重新标记的耗时较短,但是需要停⽌⽤户线程,总体⽽⾔,整个过程造成的停顿时间较短,⼤部分时候是可以和⽤户线程⼀起⼯作的。

    G1(Garbage First):G1收集器是JDK9的默认垃圾收集器,⽽且不再区分年轻代和⽼年代进⾏回收。

    相关文章

      网友评论

          本文标题:垃圾回收器了解吗?年轻代和⽼年代都有哪些垃圾回收器?

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