1. 吞吐量优先
2. 概述
在Java8中,默认是此垃圾收集器
HotSpot的年轻代中除了拥有ParNew收集器是基于并行回收的以外,Parallel Scavengel收集器同样也采用了复制算法、并行回收和”Stop the World”机制。
3. 多此一举?
- 目标则是达到一个可控制的吞吐量(Throughput),它也被称为吞吐量优先的垃圾收集器。
- 自适应调节策略也是Parallel Scavenge与ParNew 一个重要区别。
- 高吞吐量则可以高效率地利用CPU时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。因此,常见在服务器环境中使用。例如,那些执行批量处理、订单处理、工资支付、科学计算的应用程序。
- Parallel收集器在JDK1.6时提供了用于执行老年代垃圾收集的Parallel old收集器,用来代替老年代的Serial old收集器
- Parallel old收集器采用了标记-压缩算法,但同样也是基于并行回收和”Stop-the-World”机制。
4. 参数
- -XX:+UseParallelGC 手动指定年轻代使用Paralle1并行收集器执行内存回收任务
- -XX:+UseParalleloldGC手动指定老年代都是使用并行回收收集器。
- -XX:ParallelGCThreads设置年轻代并行收集器的线程数。一般地,最好与CPU数量相等,以避免过多的线程数影响垃圾收集性能
- -XX:MaxGCPauseMillis设置垃圾收集器最停顿时间(即STW的时间)。单位是毫秒
- -XX:GCTimeRatio垃圾收集时间占总时间的比例(=1/(N+1))。用于衡量吞吐量的大小 0-100
- -XX:+UseAdaptivesizePolicy设置Parallel Scavenge收集器具有自适应调节策略