Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机组成原理

  • 操作系统

  • 计算机网络

  • 设计模式

  • Java

    • Java基础

    • Java集合

    • Java并发

    • JVM

      • JVM内存模型
      • JVM垃圾回收中的道法术器
      • Minor GC,Major GC,Young GC,Old GC,Major GC有什么区别
      • Minor GC时老年代在干什么
      • ​​Major GC时年轻代在干什么
      • Full GC​时年轻代和老年代在干什么
      • 常用垃圾回收器对比
      • OOM、内存泄漏与内存溢出的区别解析
      • 类的加载机制
  • Spring

  • SpringCloud

  • MySQL

  • Redis

  • 分布式

  • Zookeeper

  • Dubbo

  • Kafka

  • 数据结构

  • 算法

  • OJ

  • 从道家哲学看计算机?
  • 后端
  • Java
  • JVM
plantre
2025-05-04

Minor GC时老年代在干什么

Minor GC时老年代的关键行为

在Java虚拟机的垃圾回收机制中,Minor GC(新生代垃圾回收)主要针对新生代的Eden区和Survivor区,而老年代在此期间会参与以下关键操作:


  1. 空间分配担保检查
    • 触发条件:在Minor GC发生前,JVM会检查老年代最大可用连续空间是否大于新生代所有对象总大小。

• 若满足:直接执行Minor GC,存活对象可能晋升到老年代。

• 若不满足:触发分配担保机制(JDK 1.6后默认开启),进一步检查老年代是否大于历次晋升对象的平均大小。

◦ 若仍不满足,则触发Full GC以清理老年代空间;若满足则尝试Minor GC,但可能因晋升失败触发后续Full GC。
  1. 接收晋升对象
    • 晋升场景:

• 年龄阈值:对象经历指定次数(默认15次)的Minor GC后,从Survivor区晋升到老年代。

• 动态年龄判定:Survivor区中同一批年龄对象的总大小超过Survivor区50%时,直接晋升。

• Survivor空间不足:若Minor GC后存活对象超过Survivor容量,直接进入老年代。

• 老年代行为:在Minor GC过程中,老年代需预留空间接收这些晋升对象,否则可能因空间不足导致OOM。

  1. 配合垃圾回收器的并发操作
    • CMS收集器:在Minor GC期间,若老年代使用CMS,其并发标记线程可能仍在运行,但不会主动触发Major GC。

• G1收集器:老年代Region可能参与Mixed GC(混合回收),但仅在特定阈值下触发(如老年代占用45%时)。

  1. 潜在触发Full GC
    • 风险场景:若Minor GC后存活对象过多且老年代无法容纳,会立即触发Full GC,此时老年代进入全局回收阶段(标记-整理或并发清理),导致长停顿(STW)。

总结与调优建议
• 监控老年代空间:通过-XX:MaxTenuringThreshold调整晋升年龄,减少过早晋升。

• 优化担保机制:增大老年代空间(-Xmx)或降低新生代对象存活率,避免频繁Full GC。

• 收集器选择:低延迟场景优先选择G1或ZGC,减少老年代回收对Minor GC的影响。

通过合理配置JVM参数(如-Xmn调整新生代大小)和选择垃圾收集器,可平衡老年代与新生代的协作效率,降低系统停顿风险。

编辑 (opens new window)
上次更新: 2025/06/10, 09:18:05
Minor GC,Major GC,Young GC,Old GC,Major GC有什么区别
​​Major GC时年轻代在干什么

← Minor GC,Major GC,Young GC,Old GC,Major GC有什么区别 ​​Major GC时年轻代在干什么→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式