Java笔记——Java JVM常用参数

文章目录

前言

一、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垃圾回收器

并行垃圾回收器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊健的影子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值