GC流程

作者: 挖打发 | 来源:发表于2021-04-29 23:25 被阅读0次

问题1 JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代
1 判断对象是否可以回收的算法
引用计数法、可达性分析(GCRoots)、复制算法
2 jvm堆结构


image.png
分为新生代和老年代(比例为1:2),新生代分为Eden区和Survivor区,Survivor区分为from区和to区,新生代的Eden和from和to三者比例为8:1:1,当然这些比例是可以通过jvm参数改变的

3 新生代回收
a采用复制回收算法
b当Eden区内存不足,会触发一次Minor GC
4 老年代对象的分配和回收
a.每个对象定义了年龄计数器,经过一次Minor GC后年龄加1,当年龄到达15次后,就会 晋升到老年代,老年代空间不足时就会进行Full GC
b 大对象直接进入老年代,即超过Eden区空间或者一个参数 (XX:PretenureSizeThreshold=30m,无默认值)
5 GC流程总结
对象的正常流程:Eden区->Survior区->老年代
新生代GC:Minor GC;老年代GC:Full GC,比 Minor GC 慢10倍,JVM 会“stop the world”,严重影响性能

相关文章

  • GC 流程

    GC的大致流程:

  • GC流程

    问题1 JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代1 判断对象是否可以回收的算法引用计数法、可达性分...

  • 深入Golang Runtime之Golang GC的过去,当前

    对于学习Java的开发来说, GC并不陌生, 实际上Go的GC流程与Java的CMS实现上不尽相同, 但是流程基本...

  • JVM GC算法与GC执行流程

    JVM GC算法 可达分析算法 GC执行流程 https://www.jianshu.com/p/314272e6...

  • go-内存机制(4)

    go的GC机制 GO的GC是并行GC,也就是说GC的大部分清理和普通的go代码是同时运行的,这让GO的GC流程比较...

  • 图解GC流程

    GC流程是每一个Java开发人员都应该掌握的内容。你知道什么时候触发Minor GC?什么时候触发Minor GC...

  • 图解GC流程

    GC流程是每一个Java开发人员都应该掌握的内容。你知道什么时候触发Minor GC?什么时候触发Minor GC...

  • HotSpot note(part-5)

    part 5 本comment希望能系统的探索一下GC发生的时机,以及各个GC的具体工作内容(流程),GC包括Mi...

  • GC part 5

    part 5 本comment希望能系统的探索一下GC发生的时机,以及各个GC的具体工作内容(流程),GC包括Mi...

  • 网易Java程序员两轮面试,这些问题你能答上几个?

    一、网易JAVA程序员一面流程 1. volatile有什么用? 2. minor GC和Full GC的触发时机...

网友评论

      本文标题:GC流程

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