JVM性能分析 —— CMS 老年代并发 GC 触发条件与压缩式 GC (升级为 Full GC)触发条件

CMS 触发老年代 GC 条件

先看看触发老年代GC的条件。CMS GC 在实现上分成 foreground collector(前台收集)和 background collector(后台收集)。前台收集相对比较简单,后台收集比较复杂,情况比较多。不管是 foreground collector 还是 background collector 使用的都是 mark-sweep 算法,分阶段进行标记清理,优点很明显-低延时,但最大的缺点是存在碎片,内存空间利用率低。

CMS GC 可以触发压缩式 GC(标记压缩算法),就是触发了 Full GC,否则还是正常的并发收集。压缩式 GC 这个过程就必须要等待内存分配成功后业务线程才能继续往下面走,因此整个过程必须 STW。

foreground collector(前台收集)

  • foreground collector 触发条件比较简单,就是没有空间分配对象时,就会触发一次 CMS 并发 GC 收集来进行空间回收。

background collector(后台收集)

CMS 大家都知道是并发收集器,一般常见的并发收集就是正常情况下触发 background collector 的 CMS GC,对业务影响很小。当并发模式搞不定了,就会触发 Full GC,这个回收过程业务线程是不可用的,这时候其实就是触发了 FullGC。

background collector 是通过 CMS 后台线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值