写点什么

JVM 启动参数学习笔记二

用户头像
风翱
关注
发布于: 刚刚

JVM 启动参数学习笔记二


一、JVM 启动参数--堆内存

-Xmx:指定最大的堆内存。如-Xmx8G。这只是限制了 Heap 部分的最大值为 8G。这个内存不包括栈内存,也不包括堆外使用的内存。

-Xms:指定堆内存空间的初始大小。如-Xms8G。而且指定的内存大小,并不是操作系统实际分配的初始值,而是 GC 先规划好,用到才分配。专用服务器上需要保持-Xms 和-Xmx 一致,否则应用刚启动可能就有好几个 FullGC。当两者配置不一致时,堆内存扩容可能会导致性能抖动。

-Xmn:等价于-XX:NewSize,使用 G1 垃圾收集器不应该设置该选项,在其他的某些业务场景下可以设置。官方建议设置为-Xmx 的 1/2~1/4.

-XX:MaxPermSize=size,这是 JDK1.7 之前使用的。Java8 默认允许的元空间无限大,此参数无效。

-XX:MaxMetaspaceSize=size,系统可以使用的最大堆外内存,这个参数跟-Dsun.nio.MaxDirectMemorySIze 效果相同。

-Xss,设置每个线程栈的字节数,影响栈的深度。例如-Xss1M 指定线程栈为 1MB,与-XX:ThreadStackSize=1m 等价。


二、JVM 启动参数--GC 相关

-XX:+UseG1GC:使用 G1 垃圾回收器。

-XX:+UseConcMarkSweepGC:使用 CMS 垃圾回收器。

- XX:+UseSerialGC:使用串行垃圾回收器。

-XX:+UseParallelGC:使用并行垃圾回收器。

-XX:+UnlockExperimentalVMOptions -XX:+UseZGC (Java 11+才有效的参数)

-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC (Java 12+才有效的参数)

发布于: 刚刚阅读数: 2
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
JVM启动参数学习笔记二