Jvm启动参数整理

以-X开头的都是非标准的(这些参数并不能保证在所有的JVM上都被实现),而且如果在新版本有什么改动也不会发布通知.
以-XX开头的都是不稳定的并且不推荐在生产环境中使用。这些参数的改动也不会发布通知。
使用java -XX:+PrintFlagsFinal 查看虚拟机的参数列表和值。参数的使用说明:

  • -XX:+option 开启option参数
  • -XX:-option 关闭option参数
  • -XX:option=value 将option参数设置为value

最常用的几个参数

参数名使用说明
Xms设置 Java 堆的初始化大小
Xmx设置 Java 堆最大值大小
Xss设置Java虚拟机栈大小
Xmn设置年轻代大小
-XX:PermSize设置持久代(perm gen)初始值
-XX:MaxPermSize设置持久代最大值

内存管理参数

摘自《深入理解java虚拟机》一书,后续多研究研究

参数名默认值使用说明
DisableExplicitGC默认关闭忽略来自System.gc()方法触发的垃圾收集
ExplicitGCInvokesConcurrent默认关闭当收到System.gc()方法提交的垃圾手机申请时,使用CMS收集器进行收集
UseSerialGCClient模式的虚拟机默认开启,其他模式关闭虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收
UseParNewGC关闭打开此开关,使用ParNew+Serial Old的收集器组合进行内存回收
UseConcMarkSweepGC关闭打开此开关,使用ParNew+CMS+Serial Old的收集器组合进行内存回收,Serial Old为后备回收器
UseParallelGCServer默认开启,其他关闭打开此开关后,使用Paralell Scavenge+Serial Old的收集器组合进行内存回收
UseParallelOldGC关闭打开此开关后,使用Parallel Scavenge +Parallel Old的收集器组合进行回收
PretenureSizeThreshold直接晋升到老年代对象的大小
MaxTenuringThreshold15晋升到老年代的对象年龄,一个对象坚持过一次Minor GC之后,年龄加一,到该值后,晋升到老年代
UseAdaptiveSizePolicy开启动态调整Java堆中各个区域的大小及进入老年代的年龄
SurvivorRadio默认值为8新生代中Eden区域与Survivor区域的容量比值,新生代由一块Eden与两块Survivor组成。
GCTimeRatio99GC时间比率,只用于Parallel Scavenge,即GC占用CPU:1/(1+99)的时间
MaxGCPauseMillis设置GC最大停顿时间,仅在使用Parallel Scavenge时生效
CMSInitiatingOccupancyFraction68设置CMS收集器在老年代空间被使用多少后触发垃圾回收,仅在使用CMS时生效(可以适当调大)
UseCMSCompactAtFullCollection开启设置CMS收集器在完成垃圾回收后是否要进行一次内存碎片整理,仅在使用CMS时生效
CMSFullGCsBeforeCompaction设置CMS收集器在进行若干次垃圾回收后在启动一次内存碎片整理,仅在使用CMS时生效
ScavengeBeforeFullGC开启在进行Full GC之前进行一次Minor GC
UseGCOverheadLimit开启禁止GC无限制的进行,如果过于频繁就直接发生OutOfMemory
UseTLABserver默认开启优先在本地线程缓冲区中分配对象,避免分配内存时的锁定过程
MaxHeapFreeRatio70当Xmx值比Xms值大时,堆可以动态的收缩和扩展,这个参数控制当堆空间大于指定比率时自动收缩
MaxHeapFreeRatio40当堆空间小于这个比率时自动扩展

调优参数

这里面的部分信息可以直接在JConsole或者VisualVM中查看

参数名默认值使用说明
HeapDumpOnOutOfMemoryError关闭在发生内存溢出异常时是否生成堆转储快照,关闭不会生成
HeapDumpPath转储文件位置
OnOutOfMemoryError在发生内存溢出异常时,执行指定的命令
OnError当虚拟机抛出Error异常时,执行指定命令
PrintCommandLineFlags关闭打印启动虚拟机时输入的非稳定参数
PrintCompilation关闭打印方法即时编译信息
PrintGC关闭打印GC信息
PrintGCDetails关闭打印GC详细信息
PrintGCTimeStamps关闭打印GC停顿耗时
PrintTenuringDistribution关闭打印GC后新生代各个年龄对象的大小
TraceClassLoading关闭打印类加载信息
TraceClassUnloading关闭打印类卸载信息
PrintInlining关闭打印方法内联信息
PrintAassembly关闭打印即时编译后的二进制信息

后续在整理下垃圾回收器和一些优化事情。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值