Java Virtual Machine参数

JVM的参数的类型:

1、标配参数:Java -version ;Java -help

2、X参数(了解)

  • -Xint 解释执行
  • -Xcomp  第一次使用就编译成本地代码
  • -Xmixed 混合模式

Java Virtual Machine参数_第1张图片

3、XX参数 

1、Boolean类型:

  • 格式:-XX:+或者-某个属性者(+表示开启,-表示关闭)

2、KV设置类型

  • 格式:-XX:属性key=属性值value
  • 如:-XX:MetaspaceSize=128m
  • -XX:MaxTenuringThreshold=15

-Xms 和-Xmx是属于XX参数

  • -Xms等价于-XX:InitialHeapSize
  • -Xmx等价于-XX:MaxHeapSize

查看JVM默认值

  1. -XX:+PrintFlagsInitial 
  2. -XX:+PrintFlagsFinal   :=是改过的参数,或者jvm加载的时候改的参数
  3. -XX:+PrintCommandLineFlags 查看垃圾回收器

下面是一些参数

1、-Xss:

设置单个线程栈的大小,一半默认为512k~1024k  ;等价于-XX:ThreadStackSize

2、-Xmn 设置年轻代的大小

3、-XX:MetaspaceSize

设置元空间大小(原空间的本质和永久代类似,都是对jvm规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。因此,默认情况下,元空间的大小仅受本地内存限制)

4、-XX:+PrintGCDetails 输出详细的GC收集日志信息

[PSYoungGen: 919K->512K(2560K)] 919K->520K(9728K), 0.0024482 secs]下图是对这个的解析

Java Virtual Machine参数_第2张图片

[ParOldGen: 402K->390K(7168K)] 402K->390K(9728K), [Metaspace: 2663K->2663K(1056768K)], 0.0032763 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]  把下面的永久代换成元空间

Java Virtual Machine参数_第3张图片Java Virtual Machine参数_第4张图片

5、-XX:SurvivorRatio

设置新生代中eden和S0/S1空间的比例

默认-XX:SurvivorRatio=8,Eden:S0:S1=8:1:1

假如-XX:SurvivorRatio=4,Eden:S0:S1=4:1:1

SurvivorRatio值就是设置eden区的比例占多少,S0/S1相同。

6、-XX:NewRatio

配置年轻代与老年代在堆结构的占比

默认-XX:NewRatio=2新生代占1,老年代占2,年轻代占整个堆的1/3

假如-XX:NewRatio=4新生代占1,老年代占4,年轻代占整个堆的1/5

NewRatio值就是设置老年代的占比,剩下的1给新生代

7、-XX:MaxTenuringThreshold

  • 设置垃圾的最大年龄 

你可能感兴趣的:(jvm,面试)