java垃圾收集器版本有哪些

7 篇文章 0 订阅
4 篇文章 0 订阅

一 .   各种版本对比:

名称 特点 缺点 介绍

Serial GC

          特点  :单线程,精简,结构简单,初始化简单

          缺点:进行垃圾收集过程中,会进入臭名昭著的“Stop-The-World”状态 它是最古老的垃圾收集器,

          JVM 参数是: -XX:+UseSerialGC

ParNew GC

        特点  :多线程   

        缺点: 线程切换卡顿,和用户线程抢占CPU Serial GC的多线程版本

        对应参数:-XX:+UseConcMarkSweepGC -XX:+UseParNewGC

CMS

              特点  :多线程,引入标记-清除(Mark-Sweep算法,回收效率比ParNew GC高   

              缺点: 标记 - 清除算法,存在着内存碎片化问题,所以难以避免在长时间运行等情况下发生 full GC ,导致恶劣的停顿 尽量减少停顿时间

Parrallel GC

            特点  :  多线程,并行,高效 需要人工调节

   1.它是server模式JVM的默认GC选择,也被称作是吞吐量优先的GC。

   2.对应参数-XX:+UseParallelGC,

   3.Parallel GC 引入了开发者友好的配置项,我们可以直接设置暂停时间或吞吐量等目标, JVM 会自动进行适应性调整,例如下面参数:

   -XX:MaxGCPauseMillis=value

   -XX:GCTimeRatio=N // GC时间和用户时间比例 = 1 /  (N+1)

Garbage first(G1)

     1. 基于标记-整理算法,不产生内存碎片。

      2. 可以非常精确控制停顿时间,在不牺牲吞吐量前提下,实现低停顿垃圾回收。

      G1 收集器避免全区域垃圾收集,它把堆内存划分为大小固定的几个独立区域,并且跟踪这些区域 的垃圾收集进度,同时在后台维护一个优先级列表,每次根据所允许的收集时间,优先回收垃圾 最多的区域。区域划分和优先级区域回收机制,确保 G1 收集器可以在有限时间获得最高的垃圾收 集效率。

 

二、 垃圾回收器的选用决定因素:

   1、应用程序的场景
   2、硬件的制约
   3、吞吐量的需求

  • 垃圾回收器目前分为6种类型, 串行,并行,并发标记,G1。
  • 小数据量和小型应用,使用串行垃圾回收器即可。
  • 对于对响应时间无特殊要求的,可以使用并行垃圾回收器和并发标记垃圾回收器。(中大型应用)
  • 对于heap可以分配很大的中大型应用,使用G1垃圾回收器比较好,进一步优化和减少了GC暂停时间。
  •  没有银弹,针对不同的场景,选用不同的垃圾回收器。

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值