G1 垃圾回收器

概述

  1. 吞吐量和最短停顿时间本来就互相矛盾,Parallel Old追求的是吞吐量,CMS追求的是STW的最短,而G1通过把堆分成多个相对独立的Region块,并行的进行选择性的回收,在满足容忍的最大停顿的前提下,实现最大化的吞吐量,并且自动调整各个区块的大小,最终实现一个两者兼顾的回收器。

G1中的年轻代,可以说明一下几点:

  • YGC触发的条件是Eden区满了(Eden可能是几个Region)
  • Survivor区不分S0和S1,可以认为所有的空白块都是S1,因为YGC和MajorGC都是采用复制算法,都是复制到一个空白的内存块当中。
  • 年轻代垃圾回收使用多线程并行进行,需要STW
  • 年轻代内存由一组非连续的区域组成,而且Eden、S区的大小是动态调整的
  • 存活对象被拷贝到新的幸存区或者年老代区域(超过存活ratio的对象进入老年代)

你可能感兴趣的:(G1 垃圾回收器)