本文中的垃圾收集器研究背景為:HotSpot+JDK7
一、垃圾收集器概述
如上圖所示,垃圾回收算法一共有7個,3個屬于年輕代、三個屬于年老代,G1屬于橫跨年輕代和年老代的算法。
JVM會從年輕代和年老代各選出一個算法進(jìn)行組合,連線表示哪些算法可以組合使用
二、各個垃圾收集器說明
1、Serial(年輕代)
年輕代收集器,可以和Serial Old、CMS組合使用
采用復(fù)制算法
使用單線程進(jìn)行垃圾回收,回收時會導(dǎo)致Stop The World,用戶進(jìn)程停止
client模式年輕代默認(rèn)算法
GC日志關(guān)鍵字:DefNew(Default New Generation)
圖示(Serial+Serial Old)
2、ParNew(年輕代)
新生代收集器,可以和Serial Old、CMS組合使用
采用復(fù)制算法
使用多線程進(jìn)行垃圾回收,回收時會導(dǎo)致Stop The World,其它策略和Serial一樣
server模式年輕代默認(rèn)算法
使用-XX:ParallelGCthreads參數(shù)來限制垃圾回收的線程數(shù)
GC日志關(guān)鍵字:ParNew(Parallel New Generation)
圖示(ParNew + Serail Old)