Parallel Scavenge收集器

Parallel Scavenge垃圾收集器因为与吞吐量关系密切,也称为 吞吐量收集器(Throughput Collector)
1、特点
(A)、 有一些特点与 ParNew收集器相似
      新生代收集器;
      采用复制算法;
      多线程收集;
(B)、主要特点是:它的关注点与其他收集器不同
      CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间;
      而Parallel Scavenge收集器的目标则是 达一个可控制的吞吐量(Throughput)
      关于吞吐量与收集器关注点说明详见本节后面;
2、应用场景
      高吞吐量为目标, 即减少垃圾收集时间(就是每次垃圾收集时间短,但是收集次数多),让用户代码获得更长的运行时间;
      当应用程序运行在具有 多个CPU 上, 对暂停时间没有特别高的要求 时,即程序主要在 后台进行计算,而不需要与用户进行太多交互 ;就是说可以计算完后进行一次长时间的GC
      例如,那些 执行批量处理 、订单处理、工资支付、 科学计算的应用程序
3、设置参数
      Parallel Scavenge收集器提供两个参数用于精确控制吞吐量:
(A)、"-XX:MaxGCPauseMillis"
      控制最大垃圾收集停顿时间 ,大于0的毫秒数;
      MaxGCPauseMillis设置得稍小,停顿时间可能会缩短,但也可能会使得吞吐量下降;
      因为可能导致垃圾收集发生得更频繁;
(B)、"-XX:GCTimeRatio"
      设置垃圾收集时间占总时间的比率 ,0<n<100的整数;
      GCTimeRatio 相当于设置吞吐量大小
      垃圾收集执行时间占应用程序执行时间的比例的 计算方法 是:
      1 / (1 + n)
      例如,选项-XX:GCTimeRatio=19,设置了垃圾收集时间占总时间的5%--1/(1+19);
      默认值是1%--1/(1+99),即n=99;
垃圾收集所花费的时间是年轻一代和老年代收集的总时间;
如果 没有满足吞吐量目标,则增加代的内存大小 以尽量增加用户程序运行的时间;
ParallelScavenge收集器的目标则是达到一个可控制的吞吐量(Throughput)。所谓吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用户代码时间 + 垃圾收集时间),虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。
      此外,还有一个值得关注的参数:
(C)、"-XX:+UseAdptiveSizePolicy"
      开启这个参数后,就不用手工指定一些细节参数,如:
      新生代的大小(-Xmn)、Eden与Survivor区的比例(-XX:SurvivorRation)、晋升老年代的对象年龄(-XX:PretenureSizeThreshold)等;
      JVM会根据当前系统运行情况收集性能监控信息,动态调整这些参数,以提供最合适的停顿时间或最大的吞吐量,这种调节方式称为 GC自适应的调节策略(GC Ergonomiscs) ;    
      这是一种值得推荐的方式
      (1)、只需设置好内存数据大小(如"-Xmx"设置最大堆);
      (2)、然后使用"-XX:MaxGCPauseMillis"或"-XX:GCTimeRatio"给JVM设置一个优化目标;
      (3)、那些具体细节参数的调节就由JVM自适应完成;        
      这也是Parallel Scavenge收集器 与ParNew收集器一个重要区别 ;  
4、吞吐量与收集器关注点说明
(A)、吞吐量(Throughput)
      CPU用于运行用户代码的时间与CPU总消耗时间的比值;
      即 吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间);     
      高吞吐量即减少垃圾收集时间,让用户代码获得更长的运行时间;
(B)、垃圾收集器期望的目标(关注点)
(1)、停顿时间    
      停顿时间越短就适合需要与用户交互的程序;
      良好的响应速度能提升用户体验;
(2)、吞吐量
      高吞吐量则可以高效率地利用CPU时间 ,尽快完成运算的任务
      主要适合在后台计算而不需要太多交互的任务;
(3)、覆盖区(Footprint)
      在达到前面两个目标的情况下,尽量 减少堆的内存空间
      可以获得更好的空间局部性;
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值