【基础+实战】JVM原理及优化系列之四:JVM参数说明

1. JVM参数分类

1、标准参数(-),所有JVM都必须支持这些参数的功能,而且向后兼容;例如:
-client——设置JVM使用Client模式,特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或开发调试;在32位环境下直接运行Java程序默认启用该模式。
-server——设置JVM使Server模式,特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境。在具有64位能力的JDK环境下默认启用该模式。
2、非标准参数(-X),默认JVM实现这些参数的功能,但是并不保证所有JVM实现都满足,且不保证向后兼容
3、非稳定参数(-XX),此类参数各个JVM实现会有所不同,将来可能会不被支持,不推荐在生产环境中使用

2. JVM参数值类型

  1. 布尔型参数选项:-XX:+ 打开, -XX:- 关闭。(译者注:比如-XX:+PrintGCDetails)
  2. 数字型参数选项通过-XX:=设定。数字可以是 m/M(兆字节),k/K(千字节),g/G(G字节)。比如:32K表示32768字节。(译者注:比如-XX:HeapDumpPath=./java_pid.hprof)
  3. 字符行参数选项通过-XX:=设定,通常用来指定一个文件,路径,或者一个命令列表。(译者注:比如-

XX:+PrintGCDetails)命令 java -help可以列出java 应用启动时标准选项(不同的JVM实现是不同的)。java -X可以列出不标准的参数(这是JVM的扩展特性)。-X相关的选项不是标准的,被改变也不会通知。如果你想查看当前应用使用的JVM参数,你可以使用:ManagementFactory.getRuntimeMXBean().getInputArguments()。

3. 基础查询参数

4. 标准参数

所谓的 Java虚拟机标准参数指的就是所有的虚拟机实现都应该支持的参数,这部分参数基本上都是对虚拟机基本能力的调整,包括对运行模式、垃圾收集信息显示、显示版本信息、断言开关等.

5. -X打头的扩展参数

6. -XX打头的扩展参数

7. 官方提供的-XX开头的扩展参数

  • XX 选项分为4大类:

行为选项:改变JVM的基本行为
G1垃圾收集器选项
性能优化选项
调试选项: 启用跟踪、打印和输出VM信息

7.1 行为选项

7.2 G1垃圾收集器选项

7.3 性能优化选项

7.4 调试选项

 

该专题是一个系列,参照了一系列JVM资料,对JVM基础知识做了摘要总结,并结合实战做了总结:

【基础+实战】JVM原理及优化系列之一:JVM体系结构

【基础+实战】JVM原理及优化系列之二:JVM内存管理

【基础+实战】JVM原理及优化系列之三:JVM垃圾收集器

【基础+实战】JVM原理及优化系列之四:JVM参数说明

【基础+实战】JVM原理及优化系列之五:JVM默认设置

【基础+实战】JVM原理及优化系列之六:JVM主要调优参数

【基础+实战】JVM原理及优化系列之七:JVM调优注意事项

【基础+实战】JVM原理及优化系列之八:如何查看JVM参数配置?

【基础+实战】JVM原理及优化系列之九:JVM监控、分析与故障处理实战

【基础+实战】JVM原理及优化系列之十:JVM内存泄漏专题实战

通览该系列文章之后,对JVM会有一个整体的认识,对于JVM问题排查和优化会有一定的帮助,如果想对JVM有更深入的理解和认知,建议深入看一下这本书《Java虚拟机:JVM高级特性与最佳实践(最新第二版)》,网上可以找到pdf版的,大家可以自己百度一下。

 

代码交流 2021