0%

垃圾回收-分代回收.md

[TOC]

垃圾回收中的分代回收

年轻代空间

  • eden 分区: 新生成的 java 对象 会存储在该分区
  • from/to 幸存者分区: 当eden发生GC后,幸存的java对象 会存储在该分区

年轻代 GC 大致流程:

  1. 绝大多数新生成的对象保存在 Eden 分区中。
  2. 当 Eden 分区被填满时,Minor GC 被触发并且 所有 幸存下来的java对象会被转移到 from/to 分区中。
  3. Minor GC 会核查 幸存的java对象,并将他们转移到另一个 幸存者分区(from/to)中。因此 总会有一个 幸存者分区为空。
  4. 当 经过多次 Minor GC后,仍然幸存的java对象会被转移到 Old 分区中

老年代空间

  • old 分区: 在幸存者分区多次GC后仍然幸存下来的java对象,会被存储在old分区

优质文章

Java (JVM) Memory Model – Memory Management in Java
Sizing the Generations
JVM内存模型及内存分配过程