在 Java(以 HotSpot / OpenJDK 为例)中,“新生代(Young Generation)”的配置主要是通过 JVM 堆内存参数 来完成的。下面按常用程度 + 版本差异给你一个清晰说明。
堆内存结构(以分代 GC 为例):
堆(Heap)
├── 新生代(Young Gen)
│ ├── Eden
│ ├── Survivor0 (S0)
│ └── Survivor1 (S1)
└── 老年代(Old Gen)
新生代主要存放:
-Xms512m -Xmx1024m
-Xms:初始堆大小-Xmx:最大堆大小-Xmn256m
表示:
最常用、最推荐的方式之一
-XX:NewRatio=2
含义:
示例(堆 900MB):
-XX:SurvivorRatio=8
含义:
示例(新生代 200MB):
java -Xms512m -Xmx1024m -Xmn256m -XX:SurvivorRatio=8 -XX:+UseParallelGC
-Xmn 仍然可用,但语义变成“初始/最大新生代提示”示例:
-XX:+UseG1GC
-Xmn256m
G1 会根据停顿时间动态调整新生代
-XX:+PrintGCDetails
-Xlog:gc*
或直接用:
jmap -heap <pid>
-Xms1024m
-Xmx1024m
-Xmn400m
-XX:SurvivorRatio=8
-XX:+UseParallelGC
-Xms2g
-Xmx2g
-Xmn512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
✅ 出现以下情况建议调:
❌ 不要盲目调:
如果你愿意,可以告诉我:
我可以帮你给一份精准配置方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。