Java ZGC の変遷と設定オプション (original) (raw)
JDK | JEP | 備考 |
---|---|---|
JDK 11 | JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental) | Linux/x64 向け |
JDK 13 | JEP 351: ZGC: Uncommit Unused Memory (Experimental) | 未使用ヒープをOSに返却 |
JDK 14 | JEP 364: ZGC on macOS (Experimental) | macOS 向け |
JDK 14 | JEP 365: ZGC on Windows (Experimental) | Windows 向け |
JDK 15 | JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production) | 正式リリース |
JDK 21 | JEP 439: Generational ZGC | 世代別ZGC |
JDK 23 | JEP 474: ZGC: Generational Mode by Default | 世代別モードのデフォルト化 |
JDK 24 | JEP 490: ZGC: Remove the Non-Generational Mode | 非世代別モードの削除 |
JDK 9 以降の(サーバークラス)デフォルトは G1GC。
JDK 23 のデフォルトも G1GC(あくまでもZGCのデフォルトモードが世代別に変更になっただけ)。
ZGC オプション
設定 | 説明 |
---|---|
-XX:+UseZGC | ZGCを有効化 |
-XX:+ZGenerational | 世代別モードを有効化(JDK23のデフォルト)(JDK 24で削除)。非世代別は -XX:-ZGenerational |
-Xmx | 最大ヒープ・サイズ |
-Xms | 最小ヒープ・サイズ |
-XX:SoftMaxHeapSize= | ZGCが目標にするヒープサイズ。ZGCはこの値を超えることもあるが、できるだけ早くSoftMaxHeapSize以下になるようにOSにメモリを返却しようとする |
-XX:-ZUncommit | 未使用のメモリーをコミット解除し、OSに返却する機能を無効化する。-Xmxと-Xms が同値の場合、この機能は実質無効となる。-Xms 以下には返却されない |
-XX:ZUncommitDelay= | メモリーをコミット解除の遅延時間((デフォルト300秒) |
-XX:+AlwaysPreTouch | 起動中にヒープを準備する(起動が遅くなるが、平均待ち時間が短縮する) |
-XX:ConcGCThreads= | 並行GCスレッド数(ZGCにより自動的にヒューリスティック選択されるため通常は設定不要) |