JVM中的垃圾收集器

Serial收集器: 一种新生代的单线程收集器,采用复制算法回收。当它进行垃圾收集时,其余用户的全部线程都将暂停。算法

Serial Old收集器:Serial的老年代版本,采用的是标记-清除算法,一样也是单线程收集器。多线程

ParNew收集器:ParNew收集器其实是Serial的多线程版本,除了多线程收集垃圾外,其他的包括收集算法(复制算法)、对象分配规则、回收策略等都与Serial收集器彻底同样。并发

Parallel Scavenge 收集器:是一种新生代收集器,采用的是复制算法,是一种并行的多线程收集器,该收集器旨在提升系统的吞吐量(运行用户代码的时间/(运行用户代码的时间+垃圾收集时间)),因此Parallel Scavenger收集器又被称为”吞吐量优先”收集器。线程

Parallel Old收集器:是Parallel Scavenge 收集器的老年代版本,采用的是‘标记-清除’算法。code

CMS收集器:尤为重视用户服务的响应速度,希系统的停顿时间最短,以给用户带来较好的体验。并发收集,低停顿。使用的而是‘标记-清除’算法。对象

G1收集器:当前收集器技术发展的最前沿技术之一内存

并行与并发的方式;

       采用的分代收集,能够不与其它收集器配合独立管理整个GC堆;

       空间整合:总体上看G1采用的是‘标记-整理’算法,可是从局部来看是基于”复制”算法。但不管如何,这两种算法都意味着G1算法都不会产生内存空间碎片,收集后能够提供规整的可用内存。

       运做步骤:初始标记;并发标记;最终标记;筛选回收。

备注:并行

并发:垃圾收集线程能够和用户线程同时执行技术

并行:能够有多条垃圾收集线程,可是此时的用户线程仍然处于等待状态。时间

相关文章
相关标签/搜索