本文中的垃圾收集器研究背景为:HotSpot+JDK7
一、垃圾收集器概述
如上图所示,垃圾回收算法一共有7个,3个属于年轻代、三个属于年老代,G1属于横跨年轻代和年老代的算法。
JVM会从年轻代和年老代各选出一个算法进行组合,连线表示哪些算法可以组合使用
二、各个垃圾收集器说明
1、Serial(年轻代)
年轻代收集器,可以和Serial Old、CMS组合使用
采用复制算法
使用单线程进行垃圾回收,回收时会导致Stop The World,用户进程停止
client模式年轻代默认算法
GC日志关键字:DefNew(Default New Generation)
图示(Serial+Serial Old)
2、ParNew(年轻代)
新生代收集器,可以和Serial Old、CMS组合使用
采用复制算法
使用多线程进行垃圾回收,回收时会导致Stop The World,其它策略和Serial一样
server模式年轻代默认算法
使用-XX:ParallelGCthreads参数来限制垃圾回收的线程数
GC日志关键字:ParNew(Parallel New Generation)
图示(ParNew + Serail Old)