一、各种回收器特点
1、新生代串行回收器
a、运行过程中,应用中所有线程停止工作(STW)
b、Client 模式下,默认收集器
c、分代复制算法
d、垃圾回收图
2、老年代串行回收器
a、启动方式:-XX:+UseSerialGC、-XX:+UseParNewGC、-XX:+UseParalllelGC
b、标记压缩算法、运行过程中,应用中所有线程停止工作(STW)
c、垃圾回收图
3、并行回收器
a、启动方式:-XX:+UseParNewGC、-XX:+UseConcMarkSweepGC
b、分代复制算法、运行过程中,应用中所有线程停止工作(STW)
c、指定并行线程数量 -XX:ParallelGCThreads,最好与CPU数量一致,避免过多线程数,影响垃圾回收性能。默认状况下,CPU小于8,采用CPU数量,如果大于8等于3+((5*CPU_Count)/8)
d、垃圾回收图
4、新生代ParallelGC回收器
a、启动方式:-XX:+UseParalllelGC、-XX:+UseParalllelOldGC
b、分代复制算法、运行过程中,应用中所有线程停止工作(STW)
c、非常关注系统的吞吐量
d、-XX:MaxGCPauseMills 设置最大垃圾收集停顿时间。如果设置的太小,它会灵活调整堆的大小,使时间在范围之内,但是有可能造成频繁的GC,从而增加了垃圾回收的总时间,影响吞吐率
e、-XX:GCTimeRatio 设置吞吐量大小。如果为19(默认值),将不会花费1/(1+19)=5%的时间用于垃圾收集
f、-XX:+UseAdaptiveSizePolicy 打开自适应GC策略,这种情况晋升老年代对象年龄、堆大小、吞吐量和停顿时间自动调整
5、老年代ParallelOldGC回收器
a、启动方式 -XX:+UseParalllelOldGC
b、标记压缩算法、运行过程中,应用中所有线程停止工作(STW)
c、-XX:ParallelGCThreads与并行回收器原理一样
6、CMS回收器
a、启动方式 -XX:+UseConcMarkSweepGC
b、标记清除算法
c、收集过程
d、CMS 垃圾回收时刻
四、各种参数