Java虚拟机(JVM)中各种垃圾收集器的优缺点总结

下面是一个详细的表格,总结了Java虚拟机(JVM)中各种垃圾收集器的优缺点,并包括了它们的诞生时间:

垃圾收集器诞生时间优点缺点
Serial GCJDK 1.2- 简单易实现
- 适用于单处理器系统或小型应用
- 低内存占用
- 停顿时间长
- 不适用于多核处理器或需要低延迟的应用
Parallel GCJDK 1.4- 提高吞吐量
- 适用于多处理器系统
- 减少停顿时间
- 在多线程环境下仍可能导致较长的停顿时间
- 对延迟敏感应用不友好
Concurrent Mark-Sweep (CMS) GCJDK 1.4 (改进自JDK 1.2中的CMS)- 减少停顿时间
- 更适合需要低延迟的应用
- 适合多核处理器
- 可能导致碎片化
- 处理期间占用较高的CPU
- 在某些情况下可能无法完全回收垃圾
G1 (Garbage First) GCJDK 7 Update 4- 低停顿时间
- 适用于大内存应用
- 提供了可预测的停顿时间
- 更有效的垃圾回收管理
- 较为复杂
- 初期可能需要较长的调优时间
- 在一些场景下性能可能不如CMS
ZGC (Z Garbage Collector)JDK 11- 低停顿时间
- 适用于大内存应用
- 实时性能好
- 对大内存应用支持较好
- 相对较新,社区支持和成熟度较低
- 需要较新版本的JVM和硬件支持
Shenandoah GCJDK 12- 低停顿时间
- 针对大内存系统优化
- 改善了对延迟的控制
- 无需全堆暂停
- 对较小堆的性能可能不如G1
- 需要较新版本的JVM和硬件支持

详细说明

  1. Serial GC

    • 诞生时间:JDK 1.2(1998年)
    • 优点
      • 简单实现且低内存占用。
      • 适合单处理器或小型应用,停顿时间可接受。
    • 缺点
      • 在多核处理器系统上,停顿时间较长,适用性差。
      • 不适用于需要高吞吐量或低延迟的应用场景。
  2. Parallel GC

    • 诞生时间:JDK 1.4(2002年)
    • 优点
      • 提高了吞吐量,适合多处理器系统。
      • 通过并行化处理减少了单次垃圾回收的时间。
    • 缺点
      • 在多线程环境下,停顿时间可能仍然较长。
      • 对于需要低延迟的应用可能不够友好。
  3. Concurrent Mark-Sweep (CMS) GC

    • 诞生时间:JDK 1.4(2002年,基于JDK 1.2中的CMS的改进)
    • 优点
      • 设计目标是减少停顿时间,适合需要低延迟的应用。
      • 更适合多核处理器。
    • 缺点
      • 可能会导致堆内存碎片化。
      • 在处理期间会占用较高的CPU资源。
      • 在某些情况下可能无法完全回收垃圾,导致性能下降。
  4. G1 (Garbage First) GC

    • 诞生时间:JDK 7 Update 4(2011年)
    • 优点
      • 低停顿时间,适合大内存应用。
      • 提供可预测的停顿时间。
      • 更有效的垃圾回收管理,能够处理大堆内存。
    • 缺点
      • 较为复杂,调优过程可能需要时间。
      • 在某些特定场景下,性能可能不如CMS。
  5. ZGC (Z Garbage Collector)

    • 诞生时间:JDK 11(2018年)
    • 优点
      • 低停顿时间,特别适用于大内存应用。
      • 实时性能优秀,对大内存应用支持较好。
    • 缺点
      • 作为较新的收集器,社区支持和成熟度尚待提高。
      • 需要较新的JVM和硬件支持。
  6. Shenandoah GC

    • 诞生时间:JDK 12(2019年)
    • 优点
      • 低停顿时间,针对大内存系统进行优化。
      • 改善了对延迟的控制,垃圾回收无需全堆暂停。
    • 缺点
      • 对较小堆的性能可能不如G1。
      • 需要较新的JVM和硬件支持,兼容性较低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码码哈哈0.0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值