学习目标
面对下面提问,你该如何回答
- Serial、Parallel、CMS和G1有何区别?
- 对延迟要求过高会选择哪种GC?
- 内存空间较大选择哪种GC?
在前面我们已经了解到JVM中有一些方法清除JVM中的垃圾,比如引用计数、双色标记和三色标记主要描述的是如何去找到无效的对象,整理、复制和分代算法主要描述了对JVM中堆空间的有效划分和处理。有了这些想法,也许你可以自己设计一个好用的垃圾回收工具,而经过了一段时间的发展,Java中针对HotSpot虚拟机中已经有了一批垃圾回收器,包括Serial、Parallel、CMS和G1等。
Serial
Serial收集器是最基本的、发展历史最悠久的收集器。
我们可以通过在JVM配置参数设置**-XX:+UserSerialGC**启用Serial回收器。
原理:利用双色标记清除算法
特点:单线程、简单高效,对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程手机