垃圾回收的整个过程

作者: holysu | 来源:发表于2021-04-08 00:01 被阅读0次
image

过程描述

  1. 优先在eden分配
  2. 大对象直接进去老年代
  3. 年轻代分配失败 进行minor gc
  4. minor gc前会 老年代内存“分配担保” 最大的连续空闲空间大于 历次晋升对象总大小
    a. 是 安全进行minor gc
    b. 否 先进行full gc
  5. minor gc 后
    a. survivor 容纳不下的存活对象,晋升老年代
    b. survivor放得下存活空间 但是 “动态年龄判断” 超过survivor一半空间 年龄大于等于n的晋升老年代
  6. 长期存活的对象进入老年代:minor gc后存活对象年龄加一, 存活对象年龄熬到15 ,下次 minor gc 就会晋升老年代 也就是16岁成年了 老了
    如果 minor gc 晋升老年代的对象总大小 老年代放不下或者 老年代内存占用大于cms 的触发比例 进行full gc

思考几个问题

• 对象在新生代的分配
• 什么时候会触发Minor GC
• 触发Minor GC之前会如何检查老年代可用内存大小和新生代对象大小
• 如何检查老年代可用内存大小和历次Minor GC之后升入老年代的平均对象大小
• 什么情况下Minor GC之前会提前触发Full GC
• 什么情况下会直接触发Minor GC
• Minor GC之后有哪几种情况对象会进入老年代

相关文章

  • 垃圾回收的整个过程

    过程描述 优先在eden分配 大对象直接进去老年代 年轻代分配失败 进行minor gc minor gc前会 老...

  • 垃圾回收

    如何查看当前JVM使用的垃圾回收器? 如何指定使用CMS回收? 如何打印回收日志? 垃圾回收过程 CMS垃圾回收的...

  • 标记清除

    垃圾回收过程经常使用(也是最简单)的算法是标记清除(mark and sweep)。整个过程分为三步。 (1) 迭...

  • JVM 垃圾回收-03(堆)分代收集理论

    1.产生的过程 对象被jvm垃圾回收,随着对象熬过垃圾收集过程的次数(这里叫为对象的年龄)依据回收对象的年龄将对象...

  • 2.1GC系列-------如何进行回收(方法论)

    本篇针对第二个问题:如何对垃圾进行回收-方法论 首先讲解垃圾回收算法,垃圾回收算法是一个演变的过程。 标记-清除算...

  • jvm 优化篇-(7)-G1回收过程(-XX:MaxGCPaus

    1、G1垃圾回收♻️过程 1.1、触发混合回收♻️条件: -XX:InitiatingHeapOccupancy...

  • java服务器后台面试题整理

    垃圾回收的过程,CMS,G1收集器有哪些优缺点 垃圾从新生代到老年代的过程,存活多久的对象会放到老年代。 垃圾回收...

  • JVM垃圾回收的过程

    JVM垃圾回收的算法很多,但是不管是哪种算法,在进行GC时大致的流程都是差不多的,主要有以下3个过程: 1. 枚举...

  • [JAVA] JVM垃圾回收 - HotSpot的算法细节实现

    本文介绍JVM垃圾回收算法的具体实现,介绍各个术语,并图文并茂介绍具体的实现细节。垃圾回收判定及回收过程如下: 1...

  • V8垃圾回收机制

    介绍 V8的垃圾回收策略主要是基于分代垃圾回收机制。在垃圾回收演变的过程中,人们发现没有哪一种办法能够满足所有应用...

网友评论

    本文标题:垃圾回收的整个过程

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