了解java虚拟机—并行回收器(7)

本文详细介绍了并行垃圾回收器ParNew和ParallelGC的工作原理,包括它们的回收策略、算法及关键参数设置。对比了ParNew与串行回收器在多核CPU上的性能优势,并解释了ParallelGC如何优化系统吞吐量。
摘要由CSDN通过智能技术生成
并行回收器
新生代ParNew回收器

ParNew只是简单地将串行回收器多线程化,他的回收策略,算法以及参数都喝新生代串行回收器一样。由于并行回收器使用多线程进行垃圾回收,因此,在并发能力强的CPU上,它产生的停顿时间要短语串行回收器。

开启ParNew可以使用以下参数。

-XX:+UseParNewGC  新生代使用ParNew回收器,老年代使用串行回收器。

-XX:+UseConcMarkSweepGC:新生代使用ParNew回收器,老年代使用CMS。

ParNew回收器工作时的线程数量可以使用-XX:ParallelGCThreads参数指定。一般最好与CPU数量相当,避免过多的线程数,影响垃圾收集性能。

图片.png

新生代ParallelGC回收器

新生代ParallelGC回收器也是采用复制算法的收集器。与ParNew回收器不同的是它非常关注系统的吞吐量。

开启ParallelGC可以使用以下参数

-XX:+UseParallelGC:新生代使用ParallelGC回收器,老年代使用串行回收器。

-XX:+UseParallelOldGC:新生代与老年代都使用ParallelGC。

ParalleGC提供了两个重要的参数用于控制系统的吞吐量。

-XX:MaxGCPauseMillis:设置最大垃圾收集的停顿时间。

-XX:GCTimeRatio:设置吞吐量大小,它的值是0-100间的证书,假设GCTimeRtio的值为N,那么系统将话费不超过1/(1+n_的时间用于垃圾收集。

-XX:+UseAdaptiveSizePolicy可以打开自适应GC策略这种模式下新生代大小,eden和survivior比例,晋升老年代对象年龄等参数会被自动调整,以达到堆大小、吞吐量和停顿时间之间的平衡点。

老年代ParallelOldGC回收器

老年代ParallelOldGC采用标记压缩算法,它在JDK1.6中才可以使用。

它可以使用-XX:ParallelGCThreads         设置垃圾回收时的线程数。

转载于:https://my.oschina.net/u/3721114/blog/2218519

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值