多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### Parallel Scavenge收集器特性 Parallel Scavenge是基于并行的、使用复制算法的新生代垃圾回收器,与ParNew不同的是Parallel Scavenge更强调吞吐量优先,目的是为了达到一个可控的吞吐量。高吞吐量可以高效率的利用CPU时间,尽快的完成程序的执行的任务,适用于后台运算且不需要太多用户交互的场景。 自适应调节策略也是Parallel Scavenge的一大特点,通过其自身的监控,可以动态的监控内存的分配情况,自动的平衡吞吐量和低延迟或者有偏向的进行优化。 在JDK1.6的时候,Parallel提供了一个Parallel Old的老年代垃圾回收器,用来替换串行的Serial Old。Parallel Old使用标记-压缩算法,基于并行的垃圾回收器。 在吞吐量优先的场景中,Parallel Scavenge和Parallel Old的组合在Server模式下能发挥不错的性能。 ``` * -XX:+UseParallelGC:指定年轻代使用Parallel Scavenge垃圾收集器,JDK8中默认,-XX:+UseParallelGC的设置会自动激活-XX:+UseParallelOldGC * -XX:+UseParallelOldGC:指定老年代使用Parallel Old垃圾收集器,JDK8中默认,-XX:+UseParallelOldGC的设置会自动激活-XX:+UseParallelGC * -XX:ParallelGCThreads:设置年轻代垃圾回收线程数,一般情况下与CPU核心数相同即可,线程数超过CPU核心数反而起不到正向的作用,切换线程的消耗同样是会拉低效率 * 当CPU核心数小于等于8的时候,垃圾回收线程数就等于CPU核心数。 * 当CPU核心数大于8的时候,垃圾回收线程数=(5 \* CPU核心数)/ 8 + 3 * -XX:MaxGCPauseMillis:设置最大的暂停时间(STW时间),单位毫秒 * 为了尽可能的达到该参数设置的暂停时间,GC在工作的时候会调整堆大小或者其他的一些参数 * 该参数慎用,因为暂停时间和吞吐量是一个此消彼长的关系,Parallel收集器对于吞吐量优先级高。 * -XX:GCTimeRatio:垃圾收集时间占总时间的比例(也是来衡量吞吐量的),公式为1 / (n + 1),比如-XX:GCTimeRatio设置为19,那么结果就为5%,也就是说使用5%的时间来进行垃圾回收 * -XX:+UseAdpativeSizePolicy:开启自适应调节策略,默认也是开启的 * 新生代的大小、Eden和Survivor比例、晋升老年代对象的年龄阈值会被自动调整,以达到吞吐量和暂停时间的平衡点 * 一般情况下自适应策略效果已经不错了,除非自身特别有经验或者有特别的需求,最好还是开启自适应策略 ``` ### 主要特性 * 新生代收集器 * 使用复制算法的收集器 * 并行多线程收集器 * 最重要的目标:达到一个可控制的吞吐量\(Throughput\) * 又称为"吞吐量优先"收集器 * GC自适应的调节策略\(GC Ergonomics\) * 无法与CMS收集器配合工作