JVM 参数类型

  • 标准参数

  -help

   -server -client

   -version -showversion

   -cp -classpath

  • X参数

  非标准化参数(在各个JDK版本中可能会变,但是变动比较小

  -Xint   解释执行

    -Xcomp 编译执行 第一次使用就编译成本地代码

    -Xmixed 混合模式,JVM自己来决定是否编译成本地代码

用例:可以看到当前jvm为mixed mode(混合模式)
C:\Users\Administrator>java -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

使用命令:java -Xint -version jvm为interpreted mode(解释执行)
C:\Users\Administrator>java -Xint -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, interpreted mode)

使用命令:java -Xcomp -version  jvm为compiled mode(编译执行)
C:\Users\Administrator>java -Xcomp -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, compiled mode)
  • XX参数

Boolean 类型

格式:-XX:[+-]<name> 表示启用或禁用name属性
比如:
   -XX:UseConcMarkSweepGC //表示启用CMS垃圾收集器 -XX:UseGcG1        //表示启用G1垃圾收集器

非 Boolean 类型

格式:-XX:<name>=<value> 表示name属性的值是value
比如:
   -XX:MaxGcPauseMillis=500 //GC的最大停顿时间是500毫秒
     -XX:GCTimeRatio=19    //设置吞吐量大小,它的值是一个 0-100 之间的整数。假设 GCTimeRatio 的值为 n,那么系统将花费不超过 1/(1+n) 的时间用于垃圾收集

-Xmx -Xms

-Xmx -Xms  不是X参数,而是XX参数

-Xms 等价于 -XX:InitialHeapSize //初始化的堆大小
-Xmx 等价于 -XX:MaxHeapSize    //最大化的堆大小

jinfo -flag MaxHeapSize <进程编号> 运行时最大的堆大小
C:\Users\Administrator>jinfo -flag MaxHeapSize 11184
-XX:MaxHeapSize=3116367872

jinfo -flag ThreadStackSize <进程编号>  启动一个线程需要的内存大小

posted @ 2019-03-01 17:59  smokerBig  阅读(280)  评论(0编辑  收藏  举报