JVM 参数类型


1. 标准参数

  • -help
  • -server, -client
  • -version, -showversion
  • -cp, -classpath

2. X参数

  • 非标准化参数(在各个JDK版本中可能会变,但是变动比较小)
  • -Xint:解释执行
C:\Users\Gumj>java -Xint -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, interpreted mode)
  • -Xcomp:编译执行 第一次使用就编译成本地代码
C:\Users\Gumj>java -Xcomp -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, compiled mode)
  • -Xmixed:混合模式(默认),JVM自己来决定是否编译成本地代码
C:\Users\Gumj>java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

3. XX参数

  • 非标转化参数
  • 相对不稳定
  • 主要用于JVM调优和Debug
  • 参数分类:
  1. Boolean类型 格式:-XX:[+-] 表示启用或者禁用name属性。冒号后的([+]号代表启用,[-]代表禁用)
-XX:+UseConcMarkSweepGc  //表示启用CMS垃圾收集器
-XX:+UseG1Gc //表示启用G1垃圾收集器
  1. 非Boolean类型 格式:-XX:=表示name属性的值是value。
-XX:MaxGcPauseMillis=500 //GC的最大停顿时间是500毫秒
-XX:GCTimeRatio=19 //设置吞吐量大小,它的值是一个 0-100 之间的整数。假设 GCTimeRatio 的值为 n,那么系统将花费不超过 1/(1+n) 的时间用于垃圾收集
  • -Xmx -Xms
  1. 不是X参数,而是XX参数
  2. -Xms 等价于 -XX:InitialHeapSize 初始化的堆大小
  3. -Xmx 等价于 -XX:MaxHeapSize 最大化的堆大小
  4. jinfo -flag MaxHeapSize <进程编号> -XX:MaxHeapSize=994050048 运行时最大的堆大小
  5. jinfo -flag ThreadStackSize <进程编号> -XX:ThreadStackSize=1024K 启动一个线程需要的内存大小

你可能感兴趣的:(JVM 参数类型)