美文网首页
HotSpot虚拟机中垃圾收集器的介绍

HotSpot虚拟机中垃圾收集器的介绍

作者: 谁说书生无用 | 来源:发表于2018-09-13 22:16 被阅读0次

    HotSpot虚拟机垃圾收集器

    垃圾收集器

    上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。

    Serial收集器

    线程模式:单线程
    特性:简单高效
    收集算法:复制算法
    适用场景:虚拟机运行在Client模式
    运行示意图:

    Serial收集器

    ParNew收集器

    线程模式:多线程
    特性:简单、高效、并发
    收集算法:复制算法
    适用场景:虚拟机运行在多CPU的Server模式(唯一能够与CMS收集器配合使用的新生代并发收集器)
    运行示意图:

    ParNew收集器

    Parallel Scavenge收集器

    线程模式:多线程
    特性:可控吞吐量
    收集算法:复制算法
    适用场景:后台运算但不需要太多交互的任务
    运行示意图:

    Parallel Scavenge收集器

    Serial Old收集器

    线程模式:单线程
    特性:简单、高效
    收集算法:标记-整理算法
    适用场景:Client模式下的虚拟机使用;Server模式下,其一,用于jdk1.5以前版本中与Parallel Scavenge收集器搭配使用;其二,作为CMS收集器的后备预案,在并发收集反生Concurrent Mode Failure时使用。
    运行示意图:

    Serial Old收集器

    Parallel Old 收集器

    线程模式:多线程
    特性:
    收集算法:标记-整理算法
    适用场景:可以配合Parallel Scavenge收集器使用,在注重吞吐量以及CPU资源敏感的场合,可以优先考虑Parallel Scavenge 与Parallel Old收集器
    运行示意图:

    Parallel Old 收集器

    CMS(Concurrent Mark Sweep)收集器

    线程模式:多线程
    特性:并发收集、低停顿
    收集算法:标记-清除算法
    适用场景:重视服务的响应速度,希望系统停顿时间最短。
    运行示意图:

    CMS收集器

    G1(Garbage-First)收集器

    线程模式:多线程
    特性:并行与并发,分代收集,空间整合,可预测的停顿
    收集算法:标记-清除算法
    适用场景:重视服务的响应速度,希望系统停顿时间最短。
    运行示意图:

    G1收集器

    相关概念

    并行:指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。

    并发:指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在 继续运行,而垃圾收集程序运行于另一个CPU上

    吞吐量:CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量=运行用户代码时间/ (运行用户代码时间+垃圾收集时间),高吞吐量可以高效率的利用CPU时间,尽快完成程序的运算任务

    相关文章

      网友评论

          本文标题:HotSpot虚拟机中垃圾收集器的介绍

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