垃圾收集器一
Serial:
1.单线程垃圾收集器,只会使用一个CPU或者一条线程执行垃圾收集工作。
2.必须暂停所有其它线程
3.新生代垃圾收集器,使用复制算法
依然是虚拟机Client模式下的默认新生代收集器
ParNew:
1.ParNew是Serial的多线程的版本
2.新生代垃圾收集器,复制算法
3.暂停所有用户线程
4.被频繁使用的原因:除了Serial外,唯一可以和CMS垃圾收集器配合使用的新生代收集器
5.配置-XX:+UseConcMarkSweepGC选项后,默认使用的新生代垃圾收集器为ParNew
6.使用-XX:+UseParNewGC
ParNew在单个CPU情况下绝对不会比Serial有更好的垃圾收集效果,甚至在两个CPU情况下不一定比Serial好
Parrallel Scanvanger:
1.新生代收集器,使用复制算法
2.关注虚拟机的吞吐量,目标是达到一个可控制的吞吐量,吞吐量 = 运行用户代码时间/(运行用户代码时间+垃圾收集器停顿时间)。(CMS关注停顿时间)
3.配置-XX:MaxGCPauseMillis参数设置停顿时间
4.配置-XX:GCTimeRatio配置吞吐量
5.配置-XX:UseAdaptiveSizePolicy后就不在需要配置新生代大小(Xmn),Eden和surviva的比例以及晋升老年代的年龄等参数,虚拟机会自动调节,这种方式被称为GC自适应调节策略。
停顿时间越短越适合与用户交互的程序,良好的响应速度能提高用户的体验,高吞吐量则可以高效率的使用CPU时间,尽快的完成程序的运算,适合后台运算而不需要交互的程序。
GC的停顿时间是以牺牲吞吐量和内存空间为代价
Serial Old收集器
1.单线程垃圾收集器
2.老年代收集器,标记-整理算法
这个垃圾收集器主要在client下使用,在server下一:用于JDK1.5以前与parallel Scavenger配合使用,二:CMS的后备
parallel Old
1.多线程垃圾收集器
2.Parallel Scavenger的老年代版本,标记整理算法
注重吞吐量以及CPU敏感的场合,可以优先选择parallel Scavenger加Parallel的组合。

浙公网安备 33010602011771号