5.垃圾收集器

Serial收集器

单线程的收集器,“单线程”的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾手机工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工程线程,直到它手机结束。

ParNew收集器

ParNew是Serial收集器的多线程版本。

Parallel Scavenge收集器

它是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器。“吞吐量优先”收集器。

Serial Old收集器

是Serial收集器的老年代版本,同样是一个单线程收集器,使用“标记-整理”算法。

Parallel Old收集器

是Parallel Scavenge收集器的老年代版本,使用多线程和“标记-整理”算法。

CMS收集器

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。它的运作过程相对于前面几种收集器来说更为复杂一些,整个过程分为4个步骤,包括:

初始标记(CMS initial mark)

并发标记(CMS concurrent mark)

重新标记(CMS remark)

并发清除(CMS concurrent sweep)

缺点:

对CPU资源非常敏感。在并发中执行GC时会因为占用了一部分CPU资源而导致应用程序变慢,总吞吐量会降低。

无法处理浮动垃圾(Floating Garbage),可能出现“Concurrent Mode Failure”失败导致另一次Full GC产生。

基于“标记-清除”算法实现,会产生大量空间岁票。造成对象分配麻烦。

G1收集器

G1(Garbage-First)收集器是当今收集器技术发展的最前沿成果之一。运作过程大致可以划分为以下几个步骤:

初始标记

并发标记

最终标记

筛选回收。

你可能感兴趣的:(5.垃圾收集器)