java虚拟机之垃圾收集器

时间:2023-12-12 23:36:02

serial收集器:

最基本的,是一个单线程收集器,只会使用一个CPU或者一条收集线程去完成垃圾收集,
更重要的是 在进行垃圾收集时,其他任务线程必须停止,serial收集器任然是client模式下的默认新生代收集器,它高效而简单。
java虚拟机之垃圾收集器

parnew收集器:

和serial收集器一样,只是它增加了多线程,其中的收集算法,对象分配规则都是一样的。
是许多server模式下首选的收集器,在单CPU情况下,parnew收集器收集效率并不比serial高,
甚至在双CPU情况下,由于多线程的开销,parnew的收集效率甚至比serial单CPU模式下低。
java虚拟机之垃圾收集器

parallel scavenger收集器

一个新生代收集器,也是使用复制算法,又是 并行的多线程收集器,他的目的是为了达到一个可控制的吞吐量
其中吞吐量=运行代码时间/(运行代码时间+垃圾收集时间)

old serial收集器:

是serial的老年代版本,也是一个单进程的收集器,使用的是标记---整理的算法。
client模式,配合parallel scavenger使用,在jdk1.5之后配合CMS使用,
java虚拟机之垃圾收集器

old parallel收集器:

parallel scavenger的收集器的老年代版本,使用多线程和“标记---整理”的垃圾回收算法,从jdk1.6开始使用,

CMS收集器:

是第一个真正意义下并发收集器,第一次让垃圾收集线程和用户线程一起工作,
是一种以获取最短回收停顿目标的收集器,主要基于标记----清除的回收算法进行回收,主要包括四个步骤: