Site logo

张磊

全栈开发工程师

Java

JVM Notes — Generations and Tuning

Quick notes on JVM memory generations, GC survivor spaces, metaspace, and common tuning flags.

Sep 6, 20252 min readLéon Zhang
JVM Notes — Generations and Tuning

分代垃圾回收模型(Generational GC)

  • 新生代(Young Generation)
    • Eden 区:对象初始分配的区域。
    • 两个 Survivor 区(From/To):Minor GC(复制算法)时用于存活对象的复制与年龄晋升。
    • 每次 GC 后,存活对象在两个 Survivor 之间来回复制,年龄达到阈值后晋升到老年代。
    • 参见:SurvivorRatio
  • 老年代(Old Generation)
    • 参见:-XX:MaxTenuringThreshold(对象晋升年龄阈值)
  • 永久代(PermGen)/ 元空间(Metaspace,Java 8+)
    • 元空间使用本地内存(Native Memory),如 -XX:MetaspaceSize
  • 方法区(Method Area)
  • 直接内存(Direct Memory)

调优(Tuning)

SurvivorRatio

定义 Eden 与单个 Survivor 的大小比例。

示例:当 -XX:SurvivorRatio=8 时,新生代被分为 8 份 Eden + 1 份 S0 + 1 份 S1。

NewRatio(新生代与老年代的比例)

-XX:NewRatio:新生代与老年代的比例。

示例:-XX:NewRatio=2 表示老年代是新生代的 2 倍。

-Xmn(新生代大小)

-XX:MaxTenuringThreshold(对象晋升年龄阈值)

Comments

Related Posts

Java Class Lifecycle

Notes on the Java class loading process including loading, verification, preparation, resolution, initialization, usage, and unloading.

Sep 6, 20254 min read
Read More
Java Thread Lifecycle

A concise overview of Java thread states with transitions and practical notes.

Sep 6, 20252 min read
Read More