JVM探秘:JVM的参数类型

本系列笔记主要基于《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》,是这本书的读书笔记。

JVM的参数类型,大致可以分为标准参数、X参数、XX参数,而XX参数又可以分为Boolean类型、非Boolean类型。

标准参数

标准参数就是各个JVM的版本中不变的,相对稳定的参数。
例如:

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

X参数

X参数是非标准化参数,也是相对不稳定的参数。
例如:

-Xint:解释执行
-Xcomp:第一次使用就编译成本地代码
-Xmixed:混合模式,JVM自己决定是否编译成本地代码

如下图所示,默认是-Xmixed:

image

XX参数

XX参同样是非标准化的参数,相对不稳定,主要用于JVM调优和Debug。

XX参数分为Boolean类型和非Boolean类型。

Boolean类型

格式:-XX:[+-]<name> 表示启用或者禁用name属性。
例如:

-XX:+UseConcMarkSweepGC  
-XX:+UseG1GC  

非Boolean类型

格式:-XX:<name>=<value> 表示name属性的值是value。
例如:

-XX:MaxGCPauseMillis=500  
-XX:GCTimeRatio=19  

还有一些特例参数,例如:

-Xms
-Xmx
-Xss

这三个参数虽然以X开头,但不是X参数,而是XX参数。

-Xms 等价于-XX:InitialHeapSize,设置初始化堆大小。
-Xmx 等价于-XX:MaxHeapSize,设置堆最大大小。
-Xss 等价于-XX:ThreadStackSize,设置线程虚拟机栈的大小。

如下图所示,使用jinfo命令,指定pid,可以查看着三个参数的默认大小。

image

猜你喜欢

转载自www.cnblogs.com/cellei/p/12158994.html