美文网首页
1 垃圾收集器

1 垃圾收集器

作者: liuliuzo | 来源:发表于2023-01-29 20:32 被阅读0次

垃圾收集器

Serial、Serial Old、PawNew、CMS、Parallel Scavenge、Parallel Old、G1

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


HotSpot虚拟机中包含的垃圾收集器

Serial收集器是最基础、历史最悠久的收集器,曾经是HotSpot虚拟机新生代收集器的唯一选择。这个收集器是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。也就是说它在进行垃圾收集时,会发生“Stop The World”。

ParNew收集器实质上是Serial收集器的多线程并行版本,除了同时使用多条线程进行垃圾收集之外,其余的行为包括Serial收集器可用的所有控制参数、收集算法、”Stop The World”、对象分配规则、回收策略等都与Serial收集器完全一致,在实现上这两种收集器也共用了相当多的代码。

Parallel Scavenge收集器也是一款新生代收集器,它同样是基于标记-复制算法实现的收集器,也是能够并行收集的多线程收集器。它的关注点与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量。

Serial Old是Serial收集器的老年代版本,它同样是一个单线程收集器,使用标记-整理算法,这个收集器的主要意义也是供客户端模式下的HotSpot虚拟机使用。

Parallel Old是Parallel Scavenge收集器的老年代版本,支持多线程并发收集,基于标记-整理算法实现。直到Parallel Old收集器出现后,“吞吐量优先”收集器终于有了比较名副其实的搭配组合,在注重吞吐量或者处理器资源较为稀缺的场合,都可以优先考虑Parallel Scavenge加Parallel Old收集器这个组合。

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器,从名字上就可以看出CMS收集器是基于标记-清除算法实现的,它的运作过程相对于前面几种收集器来说要更复杂一些,整个过程分为四个步骤,包括:初始标记、并发标记、重新标记、并发清除。

Garbage First(简称G1)收集器是垃圾收集器技术发展历史上的里程碑式的成果,它开创了收集器面向局部收集的设计思路和基于Region的内存布局形式。到了JDK 8 Update 40的时候,G1提供并发的类卸载的支持,补全了其计划功能的最后一块拼图。这个版本以后的G1收集器才被Oracle官方称为“全功能的垃圾收集器”。

总结

通常,Serial收集器搭配Serial Old使用,ParNew收集器搭配CMS使用,Parallel Scavenge收集器搭配Parallel Old使用。此外,G1是整堆收集器,它无需搭配其他的垃圾收集器

相关文章

  • JVM源码分析系列

    JVM G1算法系列 G1垃圾收集器介绍 G1垃圾收集器之RSet G1垃圾收集器之SATB G1垃圾收集器之对象...

  • 常见Java垃圾收集器

    常见Java垃圾收集器参见:参考 1参考1 Java垃圾收集器

  • G1收集器详解

    详解 JVM Garbage First(G1) 垃圾收集器 G1垃圾收集器入门

  • 垃圾收集器整理&Java8默认垃圾回收器

    垃圾收集器整理 1.Serial 垃圾收集器(单线程、复制算法) 2.ParNew 垃圾收集器(Serial+多线...

  • 四、常见垃圾收集器

    一、垃圾收集器组合图 二、垃圾收集器的发展史 单核时代 - 串行垃圾收集器 多核时代 - 小内存1)CMS是老年代...

  • G1垃圾收集器实现原理

    1 与垃圾收集器有关的算法 在分析G1前先简单回顾一下与垃圾收集器相关的算法。通常所谓的垃圾收集器更多地是指跟踪垃...

  • G1垃圾回收器

    1、JVM垃圾收集器发展过程 1、第一阶段:Serial(串行)收集器特点:单线程收集器,垃圾回收时,必须暂停其他...

  • 垃圾收集器

    [toc] 垃圾收集器 1. Serial收集器 2. ParNew收集器 ParNew收集器其实就是Serial...

  • Java 垃圾收集器

    1、CMS收集器 CMS收集器是老年代垃圾收集器,可以与Serial收集器、Parallel New收集器搭配使用...

  • 垃圾收集器

    简介  垃圾收集器是垃圾收集算法的具体实现,各种垃圾收集器没有好坏之分,适合自己当前应用的垃圾收集器才是最好的垃圾...

网友评论

      本文标题:1 垃圾收集器

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