JVM优化系列-JVM G1 垃圾收集器

G1是JDK1.7引入的全新垃圾回收器,旨在替代CMS。它采用分区算法,具有并行、并发、分代等特点,同时兼顾年轻代和老年代的回收。G1能预测停顿时间,避免长时间的Full GC。其主要包括新生代GC、并发标记周期、混合回收等阶段。新生代GC处理eden和survivor区,并发标记周期包括初始标记、根区域扫描、并发标记和重新标记。混合回收选择垃圾比例高的区域进行回收,以减少全局停顿时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导语
  G1回收器是在JDK1.7中正式使用的一种全新的垃圾回收器,它的目标是为了取代CMS回收器。G1回收器拥有独特的垃圾回收策略,和之前的任意的一种垃圾回收器都有所不同,但是从分代策略上来说依然是属于分代垃圾回收器,也分为年轻代和老年代,任然是有eden区和survivor区。但从堆结构上看,它并不要求整个的eden区、年轻代或者老年代是连续的空间。它所使用的是一个分区算法,这个后面的分享中会介绍到。

G1特点

  作为CMS的替代算法,G1使用了全新的分区算法特点如下

并行性 :G1在回收期间,可以由多个GC线程同时工作,有效的利用多核的计算能力
并发性 :G1拥有与应用程序交替执行的能力,部分工作可以与应用程序同时执行,所以,不会在一整个回收期间完全阻塞应用程序。
分代GC:G1 是一个分代收集器,与之前的收集器不同的是它兼顾了年轻代和老年代,相比较于其他的垃圾回收器,其他的收集器只能工作于年轻代或者老年代其中的一个,所以在这个方面和之前的收集器有所不同。
空间整理:G1 在回收过程中会进行适当的对象移动,与CMS不同,只是简单的标记清理对象,在若干次GC之后,CMS必须执行一次碎片整理,G1则是每次回收都会有效的复制对象,尽量减少空间碎片。
可预见性:由于分区的原因,G1可以只选取部分区域进行内存回收,可以缩小回收范围,对于全局停顿有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值