cms和G1区别

CMS是老年代垃圾回收器,适用于减少停顿时间,但可能导致浮动垃圾和CPU消耗增加。G1是全生命周期收集器,采用标记整理算法,能预测停顿时间并降低内存碎片。G1通过追踪region的回收价值来决定优先回收,处理大对象使用Humongous区域,并在筛选回收阶段按用户设定的时间计划进行。

区别1:使用范围不一样

cms是老年代垃圾回收器,需要配合serial或者parNew新生代收集器一起使用
G1是全生命周期的垃圾回收器,无需配合其他垃圾回收器使用

区别2:stop the world时间

cms的目标是最小的停顿时间和收集目标
G1有可预测的垃圾回收停顿时间模型

如果理解G1的停顿时间模型?

  1. G1不是基于传统的整个新生代和老年代划分,而是基于region。
  2. region是将连续堆内存分大小相等的区域。回收基于region,region根据去扮演新生代或者老年代,对应每种不同的回收策略。
  3. 这样做的目的是基于region去回收,每次回收都是N个region,而不是整个堆内存。
  4. 具体实现是,G1会跟踪每个region的回收价值即每次回收能释放空间以及消耗时间,然后会维护一个优先级队列,每次根据用户设置的垃圾回收时间,优先回收价值最大的region。这样保证优先时间内,获得尽可能高的回收价值
回收时间设置:-XX:MaxGCPauseMillis(默认200ms)  
  1. 怎么处理大对象直接老年代分配的问题
  • region会有个Humongous区域,一般是超过region大小的一半时会被认为是大对象,就会用N个Humongous 的region存放
  • 关于region大小设置,一般都是2的N次幂

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值