JVM运行时参数

JVM参数选项类型

类型一:标准参数选项

  • 特点

比较稳定,后续版本基本不会变化。以 " - " 开头。

  • 选项详情

运行java或者java -help可以看到所有的标准选项

类型二:-X参数选项

  • 特点

非标准化参数,功能还是比较稳定的,但官方说后续版本可能会变更。以 " -X " 开头。

  • 选项详情

运行java -X 命令可以看到所有的X选项

  • JVM的JIT编译模式相关的选项
参数 说明
-Xint 禁用JIT,所有字节码都被解释执行,这个模式的速度是最慢的
-Xcomp 所有字节码第一次使用就都被编译成本地代码,然后再执行
-Xmixed 混合模式,默认模式,让JIT根据程序运行的情况,有选择地将某些代码编译成本地代码
  • -Xmx、-Xms、-Xss属于 -XX选项参数?
参数 说明
-Xms<size> 设置初始Java堆大小,等价于 -XX:InitialHeapSize
-Xmx<size> 设置最大Java堆大小,等价于 -XX:MaxHeapSize
-Xss<size> 设置Java线程堆栈大小, -XX:ThreadStackSize

类型三:-XX参数选项

  • 特点

非标准化参数,使用的最多的参数类型。这类选项属于实验性,不稳定。以 " -XX "开头。

  • 作用

用于开发和调试JVM

  • Boolean类型格式

-XX:+<option>:表示启用option属性

-XX:-<option>:表示禁用option属性

# 选择垃圾收集器为并行收集器
-XX:+UseParallelGC
# 表示启用G1收集器
-XX:+UseG1GC
# 自动选择年轻代区大小和响应的Survivor区比例
-XX:+UseAdaptiveSizePolicy
  • 非Boolean类型格式(key-value类型)

子类型1:数值型格式 -XX:<option>=<number>

number表示数值,number可以带上单位,比如:'m'、'M'表示兆,'k'、'K'表示Kb,'g'、'G'表示g(例如 32k跟32768是一样的效果)

示例:

-XX:NewSize=1024m 表示设置新生代初始大小为1024兆

-XX:MaxGCPauseMillis=500 表示设置GC停顿时间:500毫秒

-XX:GCTimeRatio=19 表示设置吞吐量

-XX:NewRatio=2 表示新生代与老年代的比例

子类型2:非数值型格式 -XX:<name>=<string>

示例:

-XX:HeapDumpPath=/usr/local/heapdump.hprof 用来指定heap转存文件的存储路径

  • -XX:+PrintFlagFinal

输出所有参数的名称和默认值

默认不包括Diagnostic和Experimental的参数

可以配合-XX:+UnlockDiagnosticVMOptions-XX:UnlockExperimentalVMOptions使用

添加JVM参数选项

IDEA

运行jar包

java -Xms50m -Xmx50m -XX:+PrintGCDetails -XX:+PrintTGCTimeStamps -jar demo.jar

通过Tomcat运行war包

Linux系统下可以在 tomcat/bin/catalina.sh中添加类似如下配置:

JAVA_OPTS="-Xms512M -Xmx1024M"

Windows系统下载catalina.bat中添加类似如下配置:

set "JAVA_OPTS=-Xms512M -Xmx1024M"

程序运行过程中

使用jinfo -flag <name>=<value> <pid>设置非Boolean类型参数

使用jinfo -flag [+|-]<name> <pid> 设置Boolean类型参数

常用的JVM参数选项

posted @   Lz_蚂蚱  阅读(44)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起