JVM虚拟机:垃圾回收器之G1

本文详细介绍了G1垃圾回收器,它是一种兼顾吞吐量和暂停时间的并发收集器,适用于多处理器环境。G1将堆内存划分为区域,通过预测功能和混合GC(MixedGC)策略,实现高效且低暂停时间的垃圾回收。G1的内存组成包括Eden、Survivor、Old和Humongous区域,并利用RememberedSet和Collection Set优化回收效率。当遇到Full GC时,可通过调整内存、提升CPU性能或改变MixedGC触发阈值来优化。

本文重点

在前面的课程中我们介绍了六个垃圾回收器,分别是新生代的三个以及老年代的三个,本文我们将介绍一个垃圾回收器,它既可以用于新生代又可以用于老年代,这个垃圾回收器就是G1。

G1垃圾回收器的特点

G1是一种服务器端的并发收集垃圾回收器,应用在多处理器和大容量内存环境中,在实现吞吐量的同时(比PO的吞吐量差一些),压缩空闲空间不会延长GC的暂停时间,尽可能地满足垃圾收集暂停时间的要求,它具有预测功能,可以让开发人员根据实际经验设置停顿时间。适用于不需要实现很高的吞吐量、并且需要很快响应时间的场景。

G1的优点

G1能够充分利用多CPU,多核环境硬件优势,尽量缩短STW,可以人为地设置停顿时间。

G1整体上采用标记-整理算法,局部通过复制算法(新生代),针对于老年代,将存活对象从一个区域复制到另外一个区域,这就意味着,G1完成了堆的压缩,至少是部分堆的压缩,这样就不会有CMS内存碎片的问题。

G1下的内存组成

新生代和老年代的比例是不固定的,默认为5%到60%,这个G1会进行自动的调整,比如G1在新生代的垃圾回收时间比较长,那么它可能就会自动调小新生代所占空间的比例。

如上所示,之前我们介绍的六种垃圾回收器会将JVM的堆内存分为新生代和老年代(物理上就是这么分的),而现在不是了,G1物理上不分新生代和老年代,G1只在逻辑上分为新生代和老年代。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

人工智能_AI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值