JVM 参数说明
1、废弃 CMS GC
Java 9 废弃了 CMS GC ,原因是 CMS 参数太多,太复杂,因此相关参数不可用
JVM 后续默认使用 G1 算法,通过配置消除重复字符串,可以降低内存使用
也可以配置使用 ZGC 算法,它有更低的 GC 停顿,一般小于 10ms,需要 Java 11 以上
2、常用相关参数
Params
// 一定要作为第一个参数,在多个CPU时性能佳
-server
// 在控制台输出 GC 情况
-verbose:gc
// 不验证类,在运行受信任的代码时,可以加上该参数以提供运行速度
-noverify
-X Params
// JVM 的初始分配内存
// 在服务端生产环境时,设置为与 -Xmx 值一致,避免垃圾回收时,重新分配内存
// 开发环境下时,可以设置较小,避免 IDE 直接启动就有较高的内存占用
-Xms256m
// JVM 最大可用内存
-Xmx2048m
// 设置年轻代内存大小
// 整个JVM内存大小= 年轻代大小 + 年老代大小 + 持久代大小(一般为固定 64M)
-Xmn256m
// 记录GC日志,这里建议写成绝对路径
// Java 11 里面已经标记该参数为 deprecated ,将被弃用
// 使用 -Xlog:gc