jvm垃圾收集器(八)

一、垃圾收集器

1.串行收集器Serail:  Serail、Serail Old 

单个线程执行完垃圾收集,再用单个线程去执行应用程序。如嵌入式

 

2.并行收集器Parallel:Parallel Scavenge、Parallel Old 吞吐量优先

指多个线程并发执行垃圾收集,在垃圾收集期间,暂停应用程序执行,适用于交互性弱的场景,如科学计算,后台处理

 

3.并发收集器Concurrent:CMS、G1、响应时间优先

指垃圾收集和应用程序同时执行(不一定是并行,有可能是线程交替执行),适用于交互性强的场景。如web

 

二、停顿时间和吞吐量

1.停顿时间

垃圾收集过程中暂停应用程序的时间

-XX:MaxGCPauseMillis

 

2.吞吐量

花在垃圾收集的时间比上应用程序执行的时间

-XX:GCTimeRatio=n ,垃圾收集时间占1/(1+n)

 

这两个值是互斥的,往往停顿时间短,吞吐量n的值就会大,调优就是需要将这两个值调到一个适中的数。

 

三、参数

1.串行:-XX:+UseSerialGC 默认会开启老年代的串行:-XX:+UseSerialOldGC

 

2.并行:-XX:+UseParallelGC 默认会开启老年代的并行:-XX:+UseParallelOldGC

Server模式下默认开启的是并行收集(当内存大于2G,cpu2核以上时就默认开启Server模式)

 

3.并发

CMS:-XX:+UseConcMarkSweepGC 默认会开启新生代并发:-XX:+UseParallelNewGC

G1:-XX:+UseG1GC

 

四、垃圾收集器搭配

 

五、如何选择垃圾收集器

1.优先调整堆的大小让服务器自己来选择

2.如果内存小于100M,使用串行收集器

3.如果是单核,并且没有停顿时间的要求,使用串行或让jvm自己选择

4.如果停顿时间允许超过1秒,选择并行或者jvm自己选择

5.如果响应时间最重要,并且停顿时间不超过1秒,使用并发收集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值