重新定制新版本MC通用JVM优化参数,同时涵盖服务端和客户端
如果遇到问题或者有更好的调优,欢迎提出
也欢迎贡献更多的统计数据
祝你能收获更多快乐
| JVM GC参数 | STW程度 | 运行表现 | JDK要求 | 适用场景 |
|---|---|---|---|---|
| G1GC | 轻度 & 偶尔尖峰 | 均衡 | JDK8+ | 服务端 & 客户端 |
| G1GC-C | 轻度 & 少量尖峰 | 积极返还内存 | JDK8+ | 客户端 |
| G1GC-M | 持续轻度 | 内存紧凑 | JDK8+ | 服务端 & 客户端 |
| ZGC | 无感 & 偶尔微感 | 积极消费内存 | JDK21+ | 服务端 & 客户端 & Velocity |
| ZGC-C | 无感 & 偶尔微感 | 积极返还内存 | JDK21+ | 客户端 |
| SGC | 无感 & 偶尔轻度 | 积极消费内存 | JDK25+ | 服务端 & 客户端 & Velocity |
| SGC-C | 无感 & 偶尔轻度 | 积极返还内存 | JDK25+ | 客户端 |
Tip
G1GC-C ZGC-C SGC-C可以有节省内存的用途
如果想节省内存占用,就把-Xms设置到比-Xmx更低
但是G1GC-C的-Xms不要给太小,不然反复伸缩进程内存会导致STW大幅波动
-
- 添加到java启动命令行
(在-jar之前) - 写入到txt文件并在启动命令行添加@xxx.txt
(在-jar之前)
(需要JDK9+) - 也可以添加到
user_jvm_args.txt
(这个因服务端而异)
- 添加到java启动命令行
-
- 添加到启动器自定义JVM参数
(需要删除启动器已有的-XX:+UseG1GC) - 写入到txt文件并在启动器自定义JVM参数添加@xxx.txt
(需要删除启动器已有的-XX:+UseG1GC)
(需要JDK9+)
- 添加到启动器自定义JVM参数
Important
在使用Windows写入到txt时,需要注意行尾必须为LF
Tip
推荐使用LTS版本,可以有更广范围的旧版MC兼容性