JVM调优参数详解

官方文档:https://docs.oracle.com/en/java/javase/15/docs/specs/man/java.html

Java额外的参数

下面的java通用参数都是特定于HotSpot虚拟机的。

-Xint

仅以解释器模式运行应用。本地代码编译会被禁用,所有的字节码都会被解释器运行。JIT即时编译器提供的性能优势将不起作用。

-Xinternalversion

展示比-version参数更详细的虚拟机信息,然后退出。

-Xmixed

用解释器执行除了热点方法之外的所有字节码,热点方法会被编译成本地代码。默认是开启的,可以使用-Xint来关闭。

-Xmn size

为分代收集器的年轻代设置堆的初始值和最大值(以字节为单位)。在末尾添加k或K来指定千字节,m或M来指定兆字节,g或G来指定千兆字节。堆的年轻代区域主要用于存放新对象。垃圾收集在这个区域进行的比其他区域频繁的多。如果年轻代区域的大小设置的太小,这个区域就会进行非常频繁的垃圾收集。如果这个区域设置的太大,那么就只会执行Full GC,Full GC会花费较长的时间才能完成。建议对于G1收集器不要对年轻代设置这个大小,对于其他垃圾收集器,将此值的大小设置为整堆空间大小的25%到50%之间。下面的例子展示了以多种方式将年轻代的值设置为256MB:

-Xmn256m

-Xmn262144k

-Xmn268435456

除了使用-Xmn同时设置年轻代的最大值和初始值,你也可以使用-XX:NewSize来设置初始大小,使用-XX:MaxNewSize来设置最大值。

-Xms size

设置堆内存的初始值和最小值(以字节为单位),这个值必须是1024的整数倍并且要大于1MB。在末尾添加k或K来指定千字节,m或M来指定兆字节,g或G来指定千兆字节。下面的例子展示了以多种单位将此值设置为6MB:

-Xms6291456

-Xms6144k

-Xms6m

除了使用-Xms同时设置堆内存的最小值和初始值,你也可以使用-XX:MinHeapSize来设置堆内存的最小值,使用-XX:InitialHeadSize来设置堆内存的初始值。

如果你不设置这个参数,堆内存的初始值会被设置为年轻代和老年代堆内存的和。年轻代堆内存的初始值可以通过-Xmn参数和-XX:NewSize参数来设置。

-Xmx size

设置堆内存的最大值(以字节为单位)。这个值必须是1024的整数倍并且要大于2MB。在末尾添加k或K来指定千字节,m或M来指定兆字节,g或G来指定千兆字节。这个值的默认值是根据运行时系统的配置来设置的。对于服务器部署,-Xms和-Xmx通常设置为相同的值。下面的例子展示了以多种单位将此值设置为80MB:

-Xmx83886080

-Xmx81920k

-Xmx80m

-Xmx参数和-XX:MaxHeadSize是等效的。

-Xnoclassgc

关闭类的GC。这可以节约GC时间,在应用运行期间减少中断。当你在启动应用时使用了-Xnocclassgc参数,在垃圾收集时类对象不会被回收,会被认为总是存活的,这将导致存放类对象的内存被持续占用,如果不谨慎使用,将可能导致OOM。

-Xshare:mode

设置CDS模式。

这个参数的值有以下几种:

auto

    如果可能的话就CDS(默认值)。

on

    要求使用CDS。

off

    不会试图使用CDS。

-XshowSettings

打印所有的设置信息并继续。

-XshowSettings:category

打印所有的设置信息并继续。category可能的参数包括下面这些:

all

    打印所有目录的设置信息(默认值)。

locale

    打印与地域相关的信息(例如语言、时区)

properties

    打印与系统参数相关的信息。

vm

    打印JVM的设置信息。

system

    Linux:打印主机或容器的设置信息并继续。

-Xss size

设置线程栈的大小(以字节为单位)。在末尾添加k或K来指定千字节,m或M来指定兆字节,g或G来指定千兆字节。默认值取决于平台:

    Linux/x64(64-bit):1024kb

    macOS(64-bit):1024kb

    Windows:默认值取决于虚拟机内存。

下面展示了以不同单位设置线程栈大小:

-Xss 1m

-Xss 1024k

-Xss 1048576

这个参数和-XX:ThreadStackSize类似。

-XX:MaxMetaspaceSize  size

设置元空间的大小(以字节为单位)。在末尾添加k或K来指定千字节,m或M来指定兆字节,g或G来指定千兆字节。默认值取决于平台:

 

Java的运行时高级参数

待整理。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值