垃圾回收器的类型
答案
垃圾回收器有以下四种类型:
Serial Garbage Collector 单线程的垃圾回收器,会在垃圾回收时,暂停其他应用程序的线程,造成程序短暂的暂停(stop the world),直到回收结束。适用于桌面应用程序
Parallel Garbage Collector 多线程版本的垃圾回收器,同样会在垃圾回收时,暂停其他应用程序线程。在多cpu情况下性能会好于serial版本的回收器
CMS Garbage Collector CMS是一个多线程的,基于标记-清除算法的回收器,它的优点是一个低停顿的回收器。它仅会在以下两种情况暂停其他应用程序线程:
- 在老年代回收标记阶段
- 在回收过程中,堆内存发生了改动,需要重新标记时
在清理阶段不需要暂停应用线程,它也需要在CPU数量较多时才能体现优势
G1 Garbage Collector G1将整个堆内存划分为多个区域(region),对这些区域进行并行的垃圾回收,它会优先对垃圾最多的区域进行收集。 G1是jdk1.7中最新的垃圾回收器,它可以充分利用多CPU的优势缩短stop the world的时间,从整体上是采用了标记-整理算法进行回收,可以减少内存碎片