JVM中常见的垃圾回收器(Garbage Collectors)

JVM中常见的垃圾回收器(Garbage Collectors)的分类和描述:

在这里插入图片描述

一、新生代收集器(Young Generation Collectors)

新生代收集器主要负责收集新创建的对象,这些对象通常存活时间较短。

Serial GC

• 单线程收集器,适用于小型应用或单核处理器。

• 进行垃圾回收时会暂停所有应用线程(Stop-The-World,STW)。

ParNew

• 多线程收集器,是Serial GC的多线程版本。

• 同样在垃圾回收时暂停所有应用线程。

ParallelGC

• 多线程收集器,使用多个线程进行垃圾回收,减少停顿时间。

• 同样在垃圾回收时暂停所有应用线程。

二、老年代收集器(Old Generation Collectors)

老年代收集器主要负责收集长期存活的对象。

CMS(Concurrent Mark-Sweep)

• 以并发方式进行垃圾回收,减少停顿时间。

• 可能产生较多的内存碎片。

Serial Old

• Serial GC的老年代版本,单线程收集器。

• 进行垃圾回收时会暂停所有应用线程。

Parallel Old

• ParallelGC的老年代版本,多线程收集器。

• 进行垃圾回收时会暂停所有应用线程。

三、整堆收集器(Full GC)

整堆收集器负责收集整个Java堆,包括新生代和老年代。

G1 GC

• 目标是减少停顿时间,使用标记-整理(Mark-Compact)算法。

• 进行垃圾回收时会暂停所有应用线程。

ZGC(Z Garbage Collector)

• 低延迟垃圾回收器,使用标记-整理算法。

• 进行垃圾回收时会暂停所有应用线程。

四、其他

Shenandoah GC

• Java 15中引入的实验性GC,目标是在非常短的停顿时间内回收大量垃圾。

• 使用增量式标记-清除算法,尽可能减少停顿时间。

Epsilon GC

• Java 14中引入的实验性GC,目标是在非常短的停顿时间内回收大量垃圾。

• 同样使用增量式标记-清除算法。

选择垃圾回收器时,需要考虑应用的响应时间要求、吞吐量、内存占用等因素。不同的垃圾回收器适用于不同的应用场景和需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值