java虚拟机不同垃圾收集器应用场景

1、推荐的垃圾收集组合,排名分先后

(1)-XX:+UseParallelOldGC:使用Parallel Scavenge+Parallel Old(适用于注重吞吐量及CPU资源敏感的场合)

(2)-XX:+UseConcMarkSweepGC:使用ParNew+CMS+Serial Old组合收集器(适用于服务器响应速度要求高的场景)

(3)G1:如果上面两种选择能满足要求,就不要使用G1,G1能提供低停顿需求,但若追求吞吐量,G1则不能带来特别的好处。

2、垃圾收集器介绍

java虚拟机提供了不同种类的垃圾收集器,分别适用于不同的场景。下图是各类收集器的大致组合情况

收集器名称适用区域适应场景优缺点涉及jvm参数
Serial新生代

1、Server环境不推荐使用

2、单线程、单CPU场景

3、Client模式

优点:单cpu下没有线程交互的开销

缺点:StopTheWorld带给用户不好的体验

-XX:+UseSerialGC:Client模式默认开启,打开此开关后,jvm会使用Serial+Serial Old的收集器组合

SurvivorRatio、PretenureSizeThreshold、HandlePromotionFailure

ParNew新生代

1、多线程收集器

2、唯一能与CMS配合工作的多线程收集器

 

UseConcMarkSweepGC:使用ParNew+CMS+Serial Old组合收集器

UseParNewGC:强制使用ParNew+Serial Old组合收集器

Parallel Scavenge新生代

1、吞吐量优先

2、多线程收集器

3、搭配Parallel Old使用,适用于注重吞吐量及CPU资源敏感的场合

1、可以实现吞吐量优先的垃圾收集机制

 

1、UseParallelGC:Server模式默认开启,使用Parallel Scavenge+Serial Old

2、UseParallelOldGC:使用Parallel Scavenge+Parallel Old(适用于注重吞吐量及CPU资源敏感的场合)

2、MaxGCPauseMillis,最大年轻代垃圾收集时间

3、GCTimeRatio,吞吐量大小

4、UseAdaptiveSizePolicy,动态调整Xmn、SurvivorRatio、PretenureSizeThreshold

Serial Old老年代Client模式下使用  
Parallel Old老年代搭配Parallel Scavenge使用  
CMS(并发低停顿收集器)老年代

1、服务器响应速度要求高

优点:最短回收停顿时间

缺点:

(1)对CPU资源敏感

(2)可能出现concurrent mode failure而导致另一次full GC

(3)大量空间碎片产生,无法容纳大对象而导致fullGC

 
G1新生代/老年代1、对停顿时间要求很低的场景优点:不会有内存碎片、停顿时间可控 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值