当前位置: 首页 > news >正文

说一下 jvm 有哪些垃圾回收器?

JVM 垃圾回收器对比表

垃圾回收器类型工作方式回收方式停顿时间适用场景优点缺点常见问题常见配置
Serial GC串行单线程,STW年轻代:复制算法
老年代:标记-整理
小内存、单核CPU,如桌面应用或嵌入式设备简单高效,适用于单核和小内存环境STW 时间长,不适用于多线程、高并发环境长时间停顿影响用户体验-XX:+UseSerialGC
Parallel GC并行多线程,STW年轻代:复制算法
老年代:标记-整理
中等高吞吐量场景,如批量计算、大数据处理适用于多核 CPU,吞吐量高,自动调优STW 时间不可预测,容易造成短时性能抖动长时间 Full GC 导致系统暂停-XX:+UseParallelGC(年轻代并行)
-XX:+UseParallelOldGC(老年代并行)
CMS GC并发多线程,部分 STW标记-清除,并发标记、并发清除短(部分长停顿)低延迟场景,如在线系统、Web 服务器低停顿时间,可并发清理,适用于交互式应用易产生碎片,导致 Full GC,容易造成“浮动垃圾”问题碎片化严重,需要频繁 Full GC-XX:+UseConcMarkSweepGC
G1 GC并发并行逻辑分区回收,Region 机制标记-整理 + 复制,Mixed GC 结合年轻代和老年代可调大内存、低停顿场景,如大型 Web 服务器停顿可预测,回收均衡,减少碎片配置复杂,Full GC 开销大,调优较难Full GC 触发后暂停时间较长-XX:+UseG1GC
ZGC并发并行读屏障、并发回收并发标记-复制极短(<1ms)超大内存、低延迟,如云计算、金融交易系统STW 低于 1ms,可扩展至 16TB 内存内存占用大,支持的 JDK 版本有限,调优难度大内存占用过大时可能影响吞吐量-XX:+UseZGC
-XX:ZUncommitDelay=300(内存回收优化)
Shenandoah GC并发并行并发标记、并发清理标记-清除 + 复制极短超大内存、低延迟,如电商、游戏服务器低延迟(<10ms),并发回收,适用于交互式应用小内存环境下表现不如 CMS/G1,CPU 占用较高高 CPU 使用率,影响吞吐量-XX:+UseShenandoahGC

补充说明

  1. STW(Stop The World):指垃圾回收期间所有应用线程必须暂停,影响系统响应时间。
  2. 吞吐量(Throughput):衡量 GC 回收效率,吞吐量高的 GC 适用于计算密集型任务,但可能会有较长的 STW 停顿。
  3. 低延迟(Low Latency):适用于需要极短暂停时间的应用,如金融、云计算、实时系统。
  4. G1/ZGC/Shenandoah 适用于大内存环境,尤其是 ZGC 可支持 16TB 内存,G1 可平衡吞吐与停顿。
  • 停顿时间:指的是垃圾回收暂停应用程序的时间。较长意味着回收期间会发生较长时间的“Stop The World”事件。
  • 适用场景:指各个回收器的典型应用环境,如服务器应用、多核CPU或客户端应用等。
  • 优点:列出了每个回收器在特定场景下的优势。
  • 缺点:列出了每个回收器可能面临的挑战或局限。

这个表格简要地比较了常见的垃圾回收器,帮助你选择合适的垃圾回收器时参考。

http://www.lryc.cn/news/535037.html

相关文章:

  • react国际化配置react-i18next详解
  • Java并发编程——上下文切换、死锁、资源限制
  • MS08067练武场--WP
  • ubuntu文件同步
  • C++23 新特性解析
  • 算法05-堆排序
  • Arrays工具类详解
  • 无人机图像拼接数据的可视化与制图技术:以植被监测为例
  • 在 debian 12 上安装 mysqlclient 报错
  • python基础入门:7.1迭代器与生成器
  • Docker 容器 Elasticsearch 启动失败完整排查记录
  • 达梦数据使用笔记
  • 操作系统中的任务调度算法
  • Linux 虚拟服务器(LVS)技术详解
  • AIoT时代来临,物联网技术如何颠覆未来生活?
  • C++17 新特性解析
  • 嵌入式软件C语言面试常见问题及答案解析(四)
  • 在 C# 中,处理 Excel 和 PDF 文件的库有很多。以下是一些比较常用的选择
  • 绩效归因概述
  • Spring Boot 中加载多个 YAML 配置文件
  • 厚植创新实力、聚焦生物科技:柏强制药的责任与机遇
  • Linux中getifaddrs函数
  • 【HarmonyOS Next 自定义可拖拽image】
  • 解决No module named ‘llama_index.llms.huggingface‘
  • SearchBar组件的功能与用法
  • 13.推荐系统的性能优化
  • Grafana-使用Button修改MySQL数据库
  • 飞科FH6218电吹风异响维修
  • 分治下的快速排序(典型算法思想)—— OJ例题算法解析思路
  • Unity3D实现显示模型线框(shader)