Serial与Serial Old垃圾回收器(学习笔记)
Serial收集器
Serial收集器是最基本、你是最悠久的垃圾收集器。JDK1.3之前回收新生代的唯一选择。
Serial收集器是HotSpot中Client模式下默认的新生代垃圾收集器。
Serial收集器采用复制算法、串行回收、STW机制的方式进行内存回收。
Serial Old收集器
同时,除了新生代之外,Serial收集器还提供用于执行老年代内存回收的Serial Old收集器。
Serial Old收集器采用标记-压缩算法、串行回收、STW机制的方式进行内存回收。
Serial Old收集器是HotSpot中Client模式下默认老年代垃圾收集器。
Serial Old收集器在Server模式下的主要用途有两个:
- 与新生代的Parallel Scavenge配合使用
- 作为老年代CMS收集器的后备垃圾回收方案
特点
优势:
- 简单高效(与其它收集器的单线程相比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,可以获得最高的单线程收集效率。这对于运行在Client模式下的虚拟机是一个不错的选择。
对于内存不大的情况(不超过200MB),可以在较短时间内完成垃圾回收,只要垃圾回收不频繁发生,使用串行回收器是可以接受的。
如何开启
-XX:+UseSerialGC
参数可以指定年轻代和老年代都是用串行收集器,即年轻代用Serial GC,老年代用Serial Old GC。
小结
目前已经基本不再使用串行垃圾回收器了。而且对于交互较强的应用而言,这种垃圾收集是不能接受的。
一般在Java Web应用程序中不会采用串行垃圾收集器。