GC方式

作者: 张天偿 | 来源:发表于2017-04-29 14:04 被阅读0次

Hotspot虚拟机堆结构

Hotspot

新生代

绝大多数最新被创建的对象会被分配到这里,由于大部分对象在创建后会很快变得不可到达,所以很多对象被创建在新生代,然后消失。对象从Young generation区域消失的过程我们称之为“minor GC”。

minor gc

新创建的对象都会被分配到Eden区(一些大对象特殊处理),这些对象经过第一次Minor GC后,如果仍然存活,将会被移到Survivor区。对象在Survivor区中每熬过一次Minor GC,年龄就会增加1岁,当它的年龄增加到一定程度时,就会被移动到年老代中。

在GC开始的时候,对象只会存在于Eden区和名为“From”的Survivor区,Survivor区“To”是空的。紧接着进行GC,Eden区中所有存活的对象都会被复制到“To”,而在“From”区中,仍存活的对象会根据他们的年龄值来决定去向。年龄达到一定值的对象会被移动到年老代中,没有达到阈值的对象会被复制到“To”区域。经过这次GC后,Eden区和From区已经被清空。这个时候,“From”和“To”会交换他们的角色,也就是新的“To”就是上次GC前的“From”,新的“From”就是上次GC前的“To”。不管怎样,都会保证名为To的Survivor区域是空的。Minor GC会一直重复这样的过程,直到“To”区被填满,“To”区被填满之后,会将所有对象移动到年老代中。

老年代

对象没有变得不可达,并且从新生代中存活下来,会被拷贝到这里。其所占用的空间要比新生代多。也正由于其相对较大的空间,发生在老年代上的GC要比新生代少得多。对象从老年代中消失的过程,我们称之为“major GC”。

Major GC 是清理OldGen。

Full GC 是清理整个堆空间—包括年轻代和永久代。

但是许多 Major GC 是由 Minor GC 触发的,所以很多情况下将这两种 GC 分离是不太可能的。

Full GC 一般发生在oldGen满的时候。

permanent Gen 也会在FullGC时回收。

Minor GC ,Full GC 触发条件

Minor GC触发条件:当Eden区满时,触发Minor GC。

Full GC触发条件:

(1)调用System.gc时,系统建议执行Full GC,但是不必然执行

(2)老年代空间不足

(3)方法区空间不足

(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存

(5)由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小

相关文章

  • GC方式

    Hotspot虚拟机堆结构 新生代 绝大多数最新被创建的对象会被分配到这里,由于大部分对象在创建后会很快变得不可到...

  • 规避代码级别的System.gc调用

    规避代码级别的System.gc调用 源起: System.gc()的调用, 会使用Full GC的方式回收整个堆...

  • 怎么解决引用计数 GC 的循环引用问题?

    作者:Android面试官 引用计数方式 GC 存在循环引用问题,导致无法辨别无用对象,而 GC ROOT 方式不...

  • PFI

    jvm 介绍下内存模型?为什么需要内存模型?新生代gc方式?工作原理? 老年代GC方式?工作原理?适用场景? 标...

  • android系列

    Android基础 GC原理时机以及GC对象; 可以通过一些技巧和方式让GC运行更加合理、高效当程序员创建对象时,...

  • Android面试:怎么解决引用计数 GC 的循环引用问题?

    引用计数方式 GC 存在循环引用问题,导致无法辨别无用对象,而 GC ROOT 方式不存在循环引用的问题 引用计数...

  • 安卓中 GC

    [序言] GC是Java对内存回收机制,了解GC,应该从了解GC的概念、内存分配、识别哪些内存需要回收和回收方式几...

  • Java的对象引用类型

    强制系统垃圾回收的两种方式: 调用System类的gc()静态方法:System.gc()。调用Runtime对象...

  • 内部管理初步,协议概述

    内存管理方式概述: OC2.0提供两种内存管理方式:垃圾回收机制(gc)和引用计数;gc用于mac系统开发,iOS...

  • Java GC 基础四——常用的垃圾回收器

    0.前言 之前我们已经对JVM的内存区域,GC的回收算法,以及监控方式都做了介绍,链接如下: Java GC 基础...

网友评论

      本文标题:GC方式

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