文章目录
前言
一、JVM基本参数类型
1、标配参数:java -version、java -showversion、java -help 2、X参数:-Xint:解释执行、-Xcomp:第一次使用就编译成本地代码、-Xmixed:混合模式 3、XX参数(重要) Boolean类型:-XX:+或者-XX:- (代表一个属性,+表示属性开启,-表示属性关闭) k-v键值型:属性key=属性值value 一问:既然JVM参数包含这两种类型,那么-Xms与-Xmx是属于哪一种类型?
1、标配参数:java -version、java -showversion、java -help
2、X参数:-Xint:解释执行、-Xcomp:第一次使用就编译成本地代码、-Xmixed:混合模式
3、XX参数(重要)
Boolean类型:-XX:+或者-XX:- (代表一个属性,+表示属性开启,-表示属性关闭) k-v键值型:属性key=属性值value
Boolean类型:-XX:+或者-XX:- (代表一个属性,+表示属性开启,-表示属性关闭)
k-v键值型:属性key=属性值value
一问:既然JVM参数包含这两种类型,那么-Xms与-Xmx是属于哪一种类型?
二、JVM常用参数
1、-Xms:初始堆大小内存 2、-Xmx:最大堆分配内存 3、-Xss:设置单个线程栈的大小 4、-Xmm:设置年轻代的大小 5、-XX:MetaspaceSize设置原空间大小 6、-XX:+PrintGCDetails 7、-XX:SurvivorRatio:设置新生代eden和s0/s1空间的比例 8、-XX:NewRatio:配置年轻代与老年代在堆结构的占比 9、-XX:MaxTenuringThresold:配置垃圾最大年龄
1、-Xms:初始堆大小内存
2、-Xmx:最大堆分配内存
3、-Xss:设置单个线程栈的大小
4、-Xmm:设置年轻代的大小
5、-XX:MetaspaceSize设置原空间大小
6、-XX:+PrintGCDetails
7、-XX:SurvivorRatio:设置新生代eden和s0/s1空间的比例
8、-XX:NewRatio:配置年轻代与老年代在堆结构的占比
9、-XX:MaxTenuringThresold:配置垃圾最大年龄
三、JVM参数使用
1、jps/jinfo查看一个正在运行的java程序的某个JVM参数是否开启 2、java盘点家底查看参数 java -XX:+PrintFlagsInitial:主要查看初始化默认配置 java -XX:+PrintFlagsFinal -version:主要查看修改更新 java -XX:+PrintCommandLineFlags -version:方便查看GC垃圾回收器
1、jps/jinfo查看一个正在运行的java程序的某个JVM参数是否开启
2、java盘点家底查看参数
java -XX:+PrintFlagsInitial:主要查看初始化默认配置 java -XX:+PrintFlagsFinal -version:主要查看修改更新 java -XX:+PrintCommandLineFlags -version:方便查看GC垃圾回收器
java -XX:+PrintFlagsInitial:主要查看初始化默认配置
java -XX:+PrintFlagsFinal -version:主要查看修改更新
java -XX:+PrintCommandLineFlags -version:方便查看GC垃圾回收器
前言
对Java JVM基本参数类型与简单使用,予以记录!
一、JVM基本参数类型
1、标配参数:java -version、java -showversion、java -help
java -version
java -version
java -showversion
java -showversion
java -help C:UsersAdministrator>java -version java version “12.0.2” 2019-07-16 Java? SE Runtime Environment (build 12.0.2+10) Java HotSpot? 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
java -help
C:UsersAdministrator>java -version
java version “12.0.2” 2019-07-16
Java? SE Runtime Environment (build 12.0.2+10)
Java HotSpot? 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
2、X参数:-Xint:解释执行、-Xcomp:第一次使用就编译成本地代码、-Xmixed:混合模式
Xint:解释执行
Xint:解释执行
Xcomp:第一次使用就编译成本地代码
Xcomp:第一次使用就编译成本地代码
Xmixed:混合模式 C:UsersAdministrator>java -version java version “12.0.2” 2019-07-16 Java? SE Runtime Environment (build 12.0.2+10) Java HotSpot? 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing) C:UsersAdministrator>java -Xint -version java version “12.0.2” 2019-07-16 Java? SE Runtime Environment (build 12.0.2+10) Java HotSpot? 64-Bit Server VM (build 12.0.2+10, interpreted mode, sharing) C:UsersAdministrator>java -Xcomp -version java version “12.0.2” 2019-07-16 Java? SE Runtime Environment (build 12.0.2+10) Java HotSpot? 64-Bit Server VM (build 12.0.2+10, compiled mode, sharing) C:UsersAdministrator>java -Xmixed -version java version “12.0.2” 2019-07-16 Java? SE Runtime Environment (build 12.0.2+10) Java HotSpot? 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
Xmixed:混合模式
C:UsersAdministrator>java -Xint -version
java version “12.0.2” 2019-07-16
Java? SE Runtime Environment (build 12.0.2+10)
Java HotSpot? 64-Bit Server VM (build 12.0.2+10, interpreted mode, sharing)
C:UsersAdministrator>java -Xcomp -version
java version “12.0.2” 2019-07-16
Java? SE Runtime Environment (build 12.0.2+10)
Java HotSpot? 64-Bit Server VM (build 12.0.2+10, compiled mode, sharing)
C:UsersAdministrator>java -Xmixed -version
java version “12.0.2” 2019-07-16
Java? SE Runtime Environment (build 12.0.2+10)
Java HotSpot? 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
3、XX参数(重要)
Boolean类型:-XX:+或者-XX:- (代表一个属性,+表示属性开启,-表示属性关闭)
Demo验证:是否打印GC收集细节与使用串行化垃圾收集器
使用命令:jps,jinfo
jps (Java Virtual Machine Process Status Tool):java虚拟机进程状态工具
public class GcRootDemo {
public static void main(String[] args) throws InterruptedException {
System.out.println("=========hello gc=========");
Thread.sleep(Integer.MAX_VALUE);
}
}
使用jps与jinfo查看结果:
是否打印GC收集细节
是否使用串行化垃圾收集器
更改参数后
同理:命令更改属性值也可
k-v键值型:属性key=属性值value
改变jvm元空间的大小:java -XX:MetaspaceSize=128m 【T】
一问:既然JVM参数包含这两种类型,那么-Xms与-Xmx是属于哪一种类型?
仍然属于k-v键值型,
-Xms等价于-XX:InitialHeapSize:初始化堆内存大小
-Xmx等价于-XX:MaxHeapSize:最大堆内存大小
二、JVM常用参数
1、-Xms:初始堆大小内存
默认为物理内存的1/64,等价于-XX:InitialHeapSize
2、-Xmx:最大堆分配内存
默认为物理内存的1/4,等价于-XX:MaxHeapSize
3、-Xss:设置单个线程栈的大小
一般默认为512k~1024k,等价于-XX:ThreadStackSize
0表示默认值
4、-Xmm:设置年轻代的大小
5、-XX:MetaspaceSize设置原空间大小
6、-XX:+PrintGCDetails
young GC
full GC
7、-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相同
8、-XX:NewRatio:配置年轻代与老年代在堆结构的占比
默认
-XX:NewRatio=2新生代占1,老年代2,年轻代占整个堆的1/3
-XX:NewRatio=4新生代占1,老年代4,年轻代占整个堆的1/5
NewRatio值就是设置老年代的占比,剩下的1给新生代
9、-XX:MaxTenuringThresold:配置垃圾最大年龄
设置为0,则年轻代对象不经过Survivor区,直接进入年老代
java8中此属性在0~15范围取值
三、JVM参数使用
1、jps/jinfo查看一个正在运行的java程序的某个JVM参数是否开启
jps -l
jinfo -flag 具体参数 进程号(或者 jinfo -flags 进程号)
2、java盘点家底查看参数
java -XX:+PrintFlagsInitial:主要查看初始化默认配置
java -XX:+PrintFlagsFinal -version:主要查看修改更新
空白等号:JVM默认加载
:等号:JVM或用户修改过的
java -XX:+PrintCommandLineFlags -version:方便查看GC垃圾回收器
并行垃圾回收器