JVM 参数设置

本文详细介绍了Java虚拟机(JVM)的各种参数,包括堆内存、新生代、老年代的比例设置,以及字符串常量池、元空间大小等。还涉及到逃逸分析、编译阈值等相关优化配置,并讨论了不同执行模式的选择。通过对这些参数的理解和调整,可以有效提升Java应用的性能。

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

-XX:+PrintFlagsInitial        查看所有的参数的默认初始值
-XX:+PrintFlagsFinal        查看所有参数设置的最终值
        通过jps查看进程号,然后通过jinfo flag 参数(如SurvivorRatio) 进程id 也可以查看最终值
-Xms        设置堆空间的初始大小,默认1/64的物理内存大小
-Xmx        设置堆空间的最大大小,默认1/4的物理内存大小
-Xmn        设置新生代空间的大小,初始值及最大值
-XX:NewRatio        设置新生代和老年代在堆空间中的占比,默认是1:2
-XX:SurvivorRatio        设置新生代中Eden区和S0/S1的占比,默认是8:1:1
-XX:MaxTenuringThreshold        设置新生代垃圾的最大年龄,默认是15
-XX:+PrintGCDetails        输出详细的GC处理日志
        -XX:+PrintGC        输出简要的GC处理信息
        -verbose:gc           输出简要的GC处理信息
-XX:HandlePromtionFailure        是否设置空间分配担保,该参数在JDK6 Update 24之后设置无效,默认开启

-XX:StringTableSize        设置字符串常量池的大小(StringTable的大小),在JDK1.6默认是1009;JDK1.7中默认大小是60013;JDK1.8中默认大小60013且可设置的最小值是1009

-XX:+DoEscapeAnalysis        是否开启逃逸分析,在JDK 6u23版本之后默认开启
-XX:+PrintEscapeAnalysis        查看逃逸分析的筛选结果,目前只在debug版本里有用
-XX:+EliminateAllocations        是否开启标量替换,默认开启

-XX:MetaspaceSize=100M        设置元空间大小100M,默认的大小是21M

-XX:MaxMetaspaceSize=100M         设置元空间最大大小100M,默认是-1(不限制)

-server        启动server模式

执行引擎

 -XX:CompileThreshold        设置方法调用计数器,达到这个阈值的方法向即时编译器提交一个该方法的编译请求,在Server模式下默认10000,在Client模式下默认1500

-XX:-UseCounterDecay        关闭热点衰减,默认开启

-XX:CounterHalfLifeTime      设置半衰周期的时间,单位是秒

-Xint        完全采用解释器模式执行程序

-Xcomp        完全采用即时编译器执行程序。如果编译器出现问题,解释器会介入执行

-Xmixed        采用解释器+编译器混合的方式共同执行程序

-XX:+PrintCommandLineFlags        打印HopSpotVM采用的自动优化参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值