官方文档: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的运行时高级参数
待整理。。。
2万+

被折叠的 条评论
为什么被折叠?



