Parallel Scavenge垃圾回收器

Parallel与Parallel Old垃圾回收器(学习笔记)

简介

全称为Parallel Scavenge收集器。
HotSpot中,除了ParNew收集器是基于并行回收以外,Parallel Scavenge同样也采用了复制算法并行回收STW机制

Parallel Scavenge的目标是达到一个可控制的吞吐量
自适应调节策略也是Parallel Scavenge和ParNew的一个重要区别。

高吞吐量则可以高效利用CPU时间,尽快完成运算任务,主要适合在后台运算而不需要太多交互的场景

  • 批量处理
  • 订单处理
  • 工资支付
  • 科学计算

在这里插入图片描述

Parallel Old收集器

Parallel收集器再JDK1.6时提供了用于执行老年代垃圾收集的Parallel Old收集器,用来代替Serial Old收集器。
Parallel Old收集器采用了标记-压缩算法,也同样基于并行回收STW机制

JDK8中,Parallel和Parallel Old时默认的垃圾回收器。

如何使用

开启Parallel收集器

+XX:UseParallelGC指明新生代中使用Parallel收集器。
+XX:UseParallelOldGC指明老年代中使用Parallel Old收集器。
以上两个参数会互相激活,即开启一个,另一个也默认开启。

设置GC线程

+XX:ParallelGCThreads设置年轻代并行收集器的线程。
JVM在默认情况下:

  • 当CPU数量不大于8时,默认值为CPU数量
  • 当CPU数量大于8时,默认值为3+(5*CPU数量)/8【向下取整】
    • 例如:当CPU数量为12时,默认线程数为3+5*12/8=10

设置暂停时间和吞吐量

-XX:MaxGCPauseMillis设置垃圾回收器最大停顿时间,单位:毫秒。

  • 为了尽可能把停顿时间控制在设定时间以内,收集器工作时会调整Java堆的大小或一些其它参数
  • 对于用户来讲,停顿时间越短越好。但对于服务器而言,更注重高并发、吞吐量。
  • 该参数需要谨慎设置

-XX:GCTimeRatio设置垃圾收集时间占总时间的比例1/(N+1),用户衡量吞吐量大小。具体而言,设置的为参数N。

  • N的取值范围:(0,100)。默认值为99,也就是垃圾回收时间不超过1%

这两个参数存在一定的矛盾性。-XX:MaxGCPauseMillis越长,-XX:GCTimeRatio越容易超过设定的比例。

自适应调节

-XX:+UseAdaptiveSizePolicy设置Parallel收集器具有自适应策略。

  • 这种模式下,年轻代、伊甸园、幸存者区的比例会自动调整,已达到在堆大小、吞吐量和停顿时间的平衡点
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值