Java虚拟机(JVM)参数和垃圾回收器(GC)

手头有个项目,还在测试阶段,运行了也有将近半年时间了,一直也没去优化JVM配置,这几天呢,正好有空,就准备处理下,也把一些需要的参数整理下,已备后用。


JVM参数分类

  1. “-“开头的参数:标准参数,所有的JVM实现都必须实现这些参数的功能,而且向后兼容。
  2. “-X”开头的参数:非标准参数,也就是只能被部分VM识别,而不能被全部VM识别的参数。
  3. “-XX”开头的参数:非稳定参数,随时可能被修改或者移除。

标准参数

标准参数直接通过:java -help 命令就可以查看到,如下图:

java -help 命令查看标准参数

非标准参数

-X非标准参数通过命令:java -X 查看,如下图:

java -X 查看非标准参数

常用且重要参数:

JVM常用非标准参数

非稳定参数

-XX非稳定参数,随时可能被修改或者移除,所以在使用的时候需要查询确认下。

-XX使用语法:

1. -XX:+[PARAM], 开启该参数的功能,如-XX:+DisableExplicitGC,开启禁止显式GC

2. -XX:-[PARAM], 关闭该参数的功能,如-XX😀isableExplicitGC,关闭禁止显示GC

3. -XX😛ARAM=VALUE, 设置参数的值,如-XX:SurvivorRatio=80,设置eden/survivor的比值

常用且重要参数:

JVM常用非稳定参数

G1参数

G1全称是Garbage First Garbage Collector,是JDK9的默认垃圾回收器。JDK7/8已有,默认关闭。使用G1的目的是简化性能优化的复杂性。

G1垃圾回收器常用参数

JDK7/8/9默认垃圾回收器

常用的一些垃圾回收器

上图是目前常用的一些垃圾回收器和垃圾回收算法,不同版本的JVM所提供的垃圾收集器可能会有很在差别。

JDK7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)

JDK8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)

JDK9 默认垃圾收集器G1

具体查看命令有两种:

1. 命令:java -XX:+PrintCommandLineFlags -version

java -XX:+PrintCommandLineFlags -version

2. 命令:java -XX:+PrintGCDetails -version

java -XX:+PrintGCDetails -version

关于我

程序界的老猿,自媒体界的新宠 じ☆ve

程序界的老猿,自媒体界的新宠 じ☆ve

联系方式:1405368512@qq.com

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

(0)
上一篇 2020年3月1日
下一篇 2020年3月1日

相关推荐