当前位置:   article > 正文

JVM GC流程_jvm完整的gc流程

jvm完整的gc流程
  1. 对象的分配和回收

                                                                 

  • java对象优先分配在Eden区和一个Survivor区(Eden和Survivor的比例可以配置,比如8:1),当Eden区和Survivor区内存不够对象分配时,触发一次MinorGC,将Eden区和Survivor区中存活的对象移入到另一个Survivor区,并将Eden和Survivor进行回收。
  • 如果另一个Survivor区不够装入存活的对象时,使用分配担保策略将这些对象存入老年代。
  • java大对象直接分配到老年代。长字符串或者大数组这类大对象会在超过设定的阈值后直接存入老年代,避免其在Eden区频繁地引发Minor GC,来回复制。
  • 上图 s1 和 s2 同时只会用其中一个块,假如Eden+s1 进行MinorGc ,存活下的进入s2 , 下次Eden+s2 进行MinorGc ,进入s1。
  • 这里有一概念叫做年龄阈值,每个对象定义了年龄计数器,经过一次 Minor GC (在交换区)后年龄加1,对象年龄达到15次后将会晋升到老年代,老年代空间不够时进行 Full GC。

 

  2. JVM完整的GC流程

  对象的正常流程:Eden 区 -> Survivor 区 -> 老年代。

  新生代GC&#

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/545673
推荐阅读
相关标签
  

闽ICP备14008679号