JVM 参数

本文深入解析Java虚拟机(JVM)的-X与-XX参数的区别,包括它们的定义、使用场景及潜在风险。同时,提供了常见配置参数的汇总,如堆设置、收集器设置、垃圾回收统计信息等,帮助读者理解如何合理设置JVM参数以优化应用程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-X、-XX区别

-X:非标准选项

以 -X 开头的这些选项是非标准选项,是特定于 Java HotSpot 虚拟机的通用选项,不保证所有 JVM 的实现都支持它们,而且还会发生变化。

-X:非标准选项

以 -XX 开头的选项是高级选项,高级选项不建议随意使用。这些是开发人员用于调优 Java HotSpot 虚拟机操作的特定区域的选项,这些选项通常具有特定的系统需求,并且可能需要特权访问系统配置参数。它们也不保证得到所有 JVM 的实现的支持,并且可能会发生变化。

Java HotSpot VM的官方文档中将启动参数分为如下两类:

配置 参数类型说明举例
-Xnon-standard非标准参数。这些参数不是虚拟机规范规定的。因此,不是所有VM的实现如:HotSpot,JRockit,J9等如:HotSpot,JRockit,J9等都支持这些配置参数。-Xmx、-Xms、-Xmn、-Xss
-XXnot-stable不稳定参数。这些参数是虚拟机规范中规定的。这些参数指定虚拟机实例在运行时的各种行为,从而对虚拟机的运行时性能有很大影响。-XX:SurvivorRatio、-XX:+UseParNewGc

补充: -X和-XX两种参数都可能随着JDK版本的变更而发生变化,有些参数可以能会被废弃掉,有些参数的功能会发生改变,但是JDK官方不会通知开发者这些变化,需要使用者注意。

-XX参数被称为不稳定参数,是因为这类参数的设置会引起JVM运行时性能上的差异配置得当可以提高JVM性能配置不当则会使JVM出现各种问题, 甚至造成JVM崩溃。

1.-XX:ParallelGCThreads=${CPU_COUNT}

 ParallelGCThreads,表示JVM在进行并行GC的时候,用于GC的线程数,-XX:ParallelGCThreads=43,表示配置GC线程数为43

2.-Xms1536m

初始的Heap的大小,是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢

3.-Xmx1536m

最大Heap的大小,是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。

在很多情况下,-Xms和-Xmx设置成一样的。这么设置,是因为当Heap不够用时,重新分配内存,会发生内存抖动,影响程序运行稳定性。以避免每次垃圾回收完成后JVM重新分配内存。

4.-Xmn768m

年轻代内存大小,整个JVM内存=年轻代 + 年老代 + 持久代 

网上参考文章:https://blog.youkuaiyun.com/yjl33/article/details/78890363

 

常见配置汇总
1.堆设置
-Xms:初始堆大小
-Xmx:最大堆大小
-XX:NewSize=n:设置年轻代大小
-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n:设置持久代大小
2.收集器设置
-XX:+UseSerialGC:设置串行收集器
-XX:+UseParallelGC:设置并行收集器
-XX:+UseParalledlOldGC:设置并行年老代收集器
-XX:+UseConcMarkSweepGC:设置并发收集器
3.垃圾回收统计信息
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
4.并行收集器设置
-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)
5.并发收集器设置
-XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。
-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值