这里不保证完全准确,可以到官方文档上面去验证:
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
GC常用参数
-Xmn
:年轻代大小-Xms
:初始堆大小-Xmx
:最大堆大小-Xss
:每个线程的栈大小-XX:+UseTLAB
:使用TLAB,默认打开-XX:+PrintTLAB
:打印TLAB的使用情况-XX:+TLABSize
:设置TLAB大小-XX:+DisableExplictGC
:禁用显式的垃圾回收,即System.gc()
-XX:+PrintGC
:打印GC信息-XX:+PrintGCDetails
:GC详细信息-XX:+PrintHeapAtGC
:GC打印堆栈情况-XX:+PrintGCTimeStamps
:发生GC系统的时间-XX:+PrintGCApplicationConcurrentTime
:打印自上次GC暂停以来经过的时间-XX:+PrintGCApplicationStoppedTime
:打印GC的暂停时长-XX:+PrintReferenceGC
:记录回收了多少种不同引用类型的引用-verbose:class
:类加载详细过程-XX:+PrintVMOptions
:打印JVM的参数-XX:+PrintFlagsFinal
/-XX:+PrintFlagsInitial
:打印最终的/初始化默认的参数-Xloggc:opt/log/gc.log
-XX:MaxTenuringThreshold
:新生代晋升年龄,最大值15- 锁自旋次数
-XX:PreBlockSpin
热点代码检测参数-XX:CompileThreshold
逃逸分析 标量替换…这些不建议设置
Parallel常用参数
-XX:SurvivorRatio
:新生代Eden:Survivor1:Survivor2的比例,默认8:1:1
-XX:PreTenureSizeThreshold
:多大对象直接放入老年代-XX:MaxTenuringThreshold
:新生代晋升年龄,最大值15-XX:+ParallelGCThreads
:并行收集器的线程数,同样适用于CMS,一般设为和CPU核数相同-XX:+UseAdaptiveSizePolicy
:自适应Eden:Survivor1:Survivor2大小比例
CMS常用参数
-XX:+UseConcMarkSweepGC
:启用CMS-XX:ParallelCMSThreads
:CMS线程数量-XX:CMSInitiatingOccupancyFraction
:使用多少比例的老年代后开始CMS收集,默认是92%-XX:+UseCMSCompactAtFullCollection
:在FGC时进行压缩,会导致回收耗时变长-XX:CMSFullGCsBeforeCompaction
:多少次FGC之后进行压缩-XX:+CMSClassUnloadingEnabled
:永久代相关,1.8之前的-XX:CMSInitiatingPermOccupancyFraction
:永久代相关,1.8之前的-XX:GCTimeRatio
:建议GC时间占用程序运行时间的百分比-XX:MaxGCPauseMillis
:期望的垃圾回收停顿时间
G1常用参数
-XX:+UseG1GC
:启用G1-XX:MaxGCPauseMillis
:建议GC停顿的最大事件,G1会尝试调整Young区的块数来达到这个值-XX:GCPauseIntervalMillis
:GC的间隔时间-XX:+G1HeapRegionSize
:设置Region分区大小,随着size增加,垃圾的存活时间更长,GC间隔更长,但每次GC的时间也会更长,ZGC做了改进(动态区块大小)-XX:G1NewSizePercent
:新生代最小比例,默认为5%-XX:G1MaxNewSizePercent
:新生代最大比例,默认为60%-XX:GCTimeRatio
:建议GC时间占用程序运行时间的百分比-XX:ConcGCThreads
:用于清理的并发线程数量-XX:InitiatingHeapOccupancyPercent
:启动G1的堆空间占用比例
原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/jvm%e5%b8%b8%e7%94%a8%e5%8f%82%e6%95%b0%e6%95%b4%e7%90%86/