JVM启动参数总结

启动参数含义
-Xms设置堆内存的最小值
-Xmx设置堆内存的最大值
-Xmn设置新生代内存大小
-Xss设置栈容量
-Xoss设置本地方法栈大小
-XX:+/-UseTLAB虚拟机是否使用TLAB(本地线程分配缓冲)
-XX:SurvivorRatio新生代中Eden区域与Survivor区域的容量比值,默认为8,代表Eden:Survivor = 8 :1
+XX:CompactFieldstrue/false(默认为true)子类之中较窄的变量是否允许插入父类变量的空隙之中
-XX:PermSize设置永久代初始内存大小
-XX:MaxPermSize设置永久代最大内存大小
-XX:+PrintGCDetails查看GC详细信息
-XX:MetaspaceSize指定元空间的初始空间大小,以字节为单位,达到该值就会触发垃圾收集进行类型卸载,同时收集器会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过-XX:MaxMetaspaceSize(如果设置了的话)的情况下,适当提高该值。
-XX:MaxMetaspaceSize设置元空间最大值,默认是-1,即不限制,或者说只受限于本地内存大小。
-XX:MinMetaspaceFreeRatio作用是在垃圾收集之后控制最小的元空间剩余容量的百分比,可减少因为元空间不足导致的垃圾收集的频率。
-XX:MaxMetaspaceFreeRatio用于控制最大的元空间剩余容量的百分比。
-XX:FieldsAllocationStyle设置虚拟机存储实例数据顺序分配策略
-XX:+HeapDumpOnOutOfMemoryError当虚拟机出现内存溢出异常时Dump当前的内存堆转储快照
-XX:MaxDirectMemorySize设置直接内存的最大值
-XX:+TraceClassLoading跟踪类的加载情况
-XX:+TraceClassUnLoading跟踪类的卸载情况
-XX:+UseCondCardMark是否开启卡表更新的条件判断
-XX:PretenureSizeThreshold直接晋升到老年代的对象大小,设置这个参数后,大于这个参数的对象将直接在老年代分配。该参数只对Serial和ParNew两款新生代收集器有效,HotSpot的其他新生代收集器,如Parallel Scavenge并不支持这个参数。
-XX:HandlePromotionFailure是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个Eden和Survivor区的所有对象都存活的极端情况
-XX:+/-UseConcMarkSweepGC打开此开关后,使用ParNew + CMS + Serial Old的收集器组合进行内存回收。Serial Old收集器将作为CMS收集器出现“Concurrent Mode Failure”失败后的后备收集器使用
-XX:+/-UseParNewGC打开此开关后,使用ParNew + Serial Old的收集器组合进行内存回收,在JDK9后不再支持
-XX:ParallelGCThreads用户线程冻结期间并行执行的收集器线程数
-XX:MaxGCPauseMillis设置GC的最大停顿时间。仅在使用Parallel Scavenge收集器时生效
-XX:GCTimeRatioGC时间占总时间的比率,默认值为99,即允许1%的GC时间。仅在使用Parallel Scavenge收集器时生效
-XX:+UserAdaptiveSizePolicy开启垃圾收集器的自适应调节策略,动态调整Java堆中各个区域的大小以及进入老年代的年龄
-XX:CMSInitiatingOccupancyFraction设置CMS收集器在老年代空间被使用多少后触发垃圾收集。默认值为68%,仅在使用CMS收集器时生效
-XX:+UseCMSCompactAtFullCollection设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片整理。仅在使用CMS收集器时生效,此参数从JDK9开始废弃
-XX:CMSFullGCsBeforeCompaction设置CMS收集器在进行若干次垃圾收集后再启动一次内存碎片整理。仅在使用CMS收集器时生效,此参数从JDK9开始废弃
-XX:G1HeapRegionSize设置Region大小,并非最终值
-XX:+PrintGC查看GC基本信息
-XX:+PrintHeapAtGC查看GC前后的堆、方法区可用容量变化
-XX:+PrintGCApplicationConcurrentTime查看GC过程中用户线程并发时间以及停顿的时间
-XX:+PrintAdaptiveSizePolicy查看收集器Ergonomics机制(自动设置堆空间各分代区域大小、收集目标等内容,从Parallel收集器开始支持)自动调节的相关信息
-XX:+PrintTenuringDistribution查看熬过收集后剩余对象的年龄分布信息
-XX: +/-UseSerialGC虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收
-XX:+/-UseParallelGCJDK9之前虚拟机运行在Server模式下的默认值,打开此开关后,使用Parallel Scavenge + Serial Old(PS MarkSweep)的收集器组合进行内存回收
-XX:+/-UseParallelOldGC打开此开关后,使用Parallel Scavenge +Parallel Old的收集器组合进行内存回收
-XX:MaxTenuringThreshold晋升到老年代的对象年龄。每个对象在坚持过一次Minor GC之后,年龄就增加1,当超过这个参数值时就进入老年代
-XX:+UseG1GC使用G1收集器,这个是JDK 9后的Server模式默认值
-XX:G1HeapRegionSize=n设置Region大小,并非最终值
XX:MaxGCPauseMillis设置G1收集过程目标时间,默认值是200ms,不是硬性条件
-XX:G1NewSizePercent新生代最小值,默认值是5%
-XX:G1MaxNewSizePercent新生代最大值,默认值是60%
-XX:ConcGCThreads=n并发标记、并发整理的执行线程数,对不同的收集器,根据其能够并发的阶段,有不同的含义
-XX:InitiatingHeapOccupancyPercent设置触发标记周期的Java堆占用率阈值。默认值是45%,这里的java堆占比指的是non_young_capacity_bytes,包括old+humongous
-XX:+UseShenandoahGC使用Shenandoah收集器。这个选项在OracleJDK中不被支持,只能在OpenJDK 12或者某些支持Shenandoah的Backport发型版本使用。目前仍然要配合-XX:+UnlockExperimentalVMOptions使用
-XX:ShenandoahGCHeuristicsShenandoah何时启动一次GC过程,其可选值有adaptive、static、static、compact、passive、aggressive
-XX:+UseZGC使用ZGC收集器,目前仍然要配合-XX:+UnlockExperimentalVMOptions使用
-XX:+UseNUMA启用NUMA内存分配支持,目前只有Parallel和ZGC支持,以后G1收集器可能也会支持该选项
-XX:+PrintFlagsFinal查看参数默认值
-XX:+HeapDumpOnCtrlBreak可以使用[Ctrl]+[Break]键让虚拟机生成堆转储快照文件
-verbose:gc在控制台输出gc情况,打印GC信息,输出内容已被-XX:+PrintGCDetails参数包括,可以不写
-Xcomp让虚拟机以编译模式执行代码,这样不需要执行足够次数来预热就能触发即时编译
-XX:+UnlockDiagnosticVMOptions
-XX:+LogCompilation
-XX:+LogFile
-XX:+DisableExplicitGC禁止人工触发垃圾收集
-XX:+Always-Tenure
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDate-Stamps
-Xloggc:gclog.log
-XX:+PrintReferenceGC跟踪软引用、弱引用、虚引用和Finallize队列
-XX:PrintSafepointStatisticsCount
-XX:+SafepointTimeout
-XX:SafepointTimeoutDelay
-Xverify:none禁止类加载时字节码验证过程
-Xint禁止编译期运作
-XX:+PrintGCTimeStamps打印GC停顿时间
-XX:+DisableExplicitGC屏蔽掉System.gc()
-XX:+UseSpinnig开启自旋锁,自旋锁在JDK 1.4.2中就已经引入,只不过默认是关闭的 ,在JDK 1.6中就已经改为默认开启了
-XX:+PreBlockSpin控制多线程自旋锁优化的自旋次数,-XX:+UseSpinning必须先启用,对于jdk6来说已经默认启用了,默认自旋10次
-XX:+DoEscapeAnalysis
-XX:+EliminateLocks

参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffylv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值