常见的几种垃圾回收器

什么是垃圾回收器,可以这样理解,垃圾回收算法是概念理论,对应JAVA中的接口,垃圾回收器就是具体的实现,JVM有很多垃圾回收器,它们实现了不同的垃圾回收算法,可以用在不同jdk版本,也适配不同的区域,比如青年代老年代都有各自专属的垃圾回收器。

在年轻代(Young Generation)中使用的垃圾回收器:

  1. Serial Garbage Collector (SerialGC):适用于单线程应用程序或小型应用程序。它使用标记-复制算法进行垃圾收集,停止应用程序线程以执行垃圾回收操作。

  2. Parallel Garbage Collector (ParallelGC):也称为吞吐量收集器,适用于多核处理器的应用程序。它使用标记-复制算法,但允许多个线程并行执行垃圾回收操作,以提高吞吐量。

  3. G1 Garbage Collector (G1GC):适用于大型内存应用程序。它使用分代收集,但将年轻代和老年代划分为不同的区域,使用标记-整理算法,以更好地控制垃圾回收的停顿时间和内存利用率。

在老年代(Old Generation)中使用的垃圾回收器:

  1. CMS Garbage Collector (CMsGC):也称为Concurrent Mark-Sweep收集器,适用于需要低停顿时间的应用程序。它使用标记-清除算法,但在标记和清除阶段允许与应用程序线程并发执行,以减少停顿时间。

  2. Parallel old Garbage Collector (ParalleloldGC): 与ParallelGC类似,但专门用于老年代。它使用标记-复制算法。

其他特殊用途的垃圾回收器:

  1. Z Garbage Collector(ZGC):适用于需要低延迟和大内存的应用程序。它使用分代收集,但在标记和整理阶段允许与应用程序线程并发执行,以减少停顿时间。

  2. G1 Garbage Collector (G1GC):在G1GC中,老年代的垃圾回收也使用标记-整理算法,与年轻代的处理方式相似。适用于大内存和低延迟要求的应用,具有高度可预测的停顿时间

Serial和Serial Old 是串行的,jdk早期。Serial:标记复制算法,Serial Old:标记整理算法。都要stw,都只有一个gc线程。

Parallel Scavenge、Parallel Old是java8默认的。Parallel Scavenge:标记复制算法,Parallel Old:标记整理算法。有多个gc线程。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值