zoukankan      html  css  js  c++  java
  • 垃圾回收的整个过程

    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之后有哪几种情况对象会进入老年代

    本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/14546825.html

  • 相关阅读:
    一. js高级(1)-面向对象编程
    tips01- 定位
    h5c3 part6 flex
    h5c3 part5 background and transform
    template and pagination
    h5c3 part4
    h5c3 part3
    h5c3 part2
    h5c3 part1
    学习博客
  • 原文地址:https://www.cnblogs.com/mushishi/p/14546825.html
Copyright © 2011-2022 走看看