面试必问的JVM垃圾回收(三)-G1垃圾收集器

G1垃圾收集器是JVM的一种,旨在减少STW时间并实现高吞吐量。它将堆划分为多个区域,采用并发标记算法,通过混合垃圾回收周期处理年轻代和老年代。关键阶段包括初始标记、并发标记、重新标记和清理。G1有快照快照(SATB)算法确保标记准确性。与传统收集器相比,G1提供了更短的暂停时间和并行空间回收,但可能影响吞吐量。
摘要由CSDN通过智能技术生成

G1垃圾收集器简介

G1垃圾收集器偏向于多处理器运行,满足stw时间短的同时实现高吞吐量。

其特点包括:

  • 堆大小高达数十GB或更大,其中超过50%的Java堆占用实时数据。
  • 对象分配和升级的速率可能会随时间而显着变化。
  • 堆中有大量碎片。
  • 预测的stw不超过几百毫秒,避免了长时间的垃圾收集暂停。

G1在应用程序运行的同时执行其部分工作,尽管使用G1收集器的垃圾收集暂停通常很短,但应用程序吞吐量也往往会略微降低。

G1是默认收集器。

启用G1

可以通过 -XX:+UseG1GC在命令行上提供显式启用它.与其他收集器类似,G1将堆分成(虚拟的)年轻一代和老一代,垃圾回收主要集中在最有效的年轻一代.

堆布局

G1将堆划分为一组大小相等的堆区域,每个堆区域都有一个连续的虚拟内存范围,如图,区域是内存分配和回收的单位。在任何给定时间,这些区域中的每个区域都可以为空(浅灰色),或分配给特定的年龄段(年轻或年长)。随着内存请求的到来,内存管理器将释放可用区域。内存管理器将它们分配给一个代,然后把可用空间返回给应用程序。

图片已经损坏 :<

 

年轻代包含伊甸园区域(红色)和幸存者区域(带有“ S”的红色)。这些区域提供的功能与其他收集器中相应的连续空间相同,不同之处在于,在G1中,这些区

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值