美文网首页厚积薄发
什么时候会触发YGC和FGC?对象什么时候会进入老年代?

什么时候会触发YGC和FGC?对象什么时候会进入老年代?

作者: 嘘寒问暖 | 来源:发表于2022-05-13 23:43 被阅读0次

当⼀个新的对象来申请内存空间的时候,如果Eden区⽆法满⾜内存分配需求,则触发YGC,使⽤中的Survivor区和Eden区存活对象送到未使⽤的Survivor区,如果YGC之后还是没有⾜够空间,则直接进⼊⽼年代分配,如果⽼年代也⽆法分配空间,触发FGC,FGC之后还是放不下则报出OOM异常。

YGC之后,存活的对象将会被复制到未使⽤的Survivor区,如果S区放不下,则直接晋升⾄⽼年代。⽽对于那些⼀直在Survivor区来回复制的对象,通过-XX:MaxTenuringThreshold配置交换阈值,默认15次,如果超过次数同样进⼊⽼年代。此外,还有⼀种动态年龄的判断机制,不需要等到MaxTenuringThreshold就能晋升⽼年代。如果在Survivor空间中相同年龄所有对象⼤⼩的总和⼤于Survivor空间的⼀半,年龄⼤于或等于该年龄的对象就可以直接进⼊⽼年代。

相关文章

  • 什么时候会触发YGC和FGC?对象什么时候会进入老年代?

    当⼀个新的对象来申请内存空间的时候,如果Eden区⽆法满⾜内存分配需求,则触发YGC,使⽤中的Survivor区和...

  • GC

    面试题 请写一段程序,让其运行时的表现为触发5次ygc,然后3次fgc,然后3次ygc,然后1次fgc,请给出代码...

  • 垃圾回收(garbage collection)

    1,什么时候触发Young GC?Eden区满时trigger YGC。Eden区和S中的一个区的存留对象被cop...

  • 什么时候会触发老年代gc

    minor gc前空间担保失败,提前进行full gc minor gc后,老年代空闲空间放不下晋升的对象 cms...

  • 优化老年代参数的分析思路

    老年代优化的基调 :避免对象过快进入老年代进而思考=> 什么情况对象会进入老年代?=> 什么情况对象会提前进入老...

  • YGC和FGC是什么

    1.YGC和FGC是什么 YGC :对新生代堆进行gc。频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收...

  • Ⅳ.GC

    1.GC简介 GC,又称YGC,只针对新生代的GC;FGC,GC后不满足对象存储会发生FGC,针对新生代,养老代,...

  • 什么时候触发GC

    什么时候触发 GC 什么时候触发Young GC----针对年轻代 当Eden区满了的时候,会触发Young GC...

  • layoutSubviews什么时候会触发

    layoutSubviews在以下情况下会被调用: 1、init初始化不会触发layoutSubviews 2、a...

  • JVM-垃圾回收GC(1)

    GC(Garbage Collector)概念 MinorGC/YGC:年轻代空间耗尽 MajorGC/FGC:在...

网友评论

    本文标题:什么时候会触发YGC和FGC?对象什么时候会进入老年代?

    本文链接:https://www.haomeiwen.com/subject/oycpurtx.html