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)收集器是当今收集器技术发展的最前沿成果之一。运作过程大致可以划分为以下几个步骤:
初始标记
并发标记
最终标记
筛选回收。