-xx: +PrintCompilation
-XX:-TieredCompilation
-XX:-BackgroundCompilation
-XX:+PrintInlining
-XX:+UnlockDiagnosticVMOptions
-XX:+LogCompilation -XX:LogFile=<your_file_path>
-XX:InitialCodeCaheSize=<SIZE>
-XX:ReservedCodeCacheSize=<SIZE>
设置方法计数器门阀值 -XX:CompileThreshold=10000
;java
关闭方法计算器的热度衰减 -XX:-UseCounterDecay
缓存
设置半衰周期,单位是秒 -XX:CounterHalfLifeTime=20
安全
可间接调整回边计数器的阈值 -XX:OnStackReplacePercentage=100
并发
-XX:+DoEscapeAnalysis
-XX:+PrintEscapeAnalysis
XX:+EliminateAllocations
-XX:+EliminateLocks
-XX:+PrintEliminateAllocations
-XX:+PrintSafepointStatistics -XX:+PrintGCApplicationStoppedTime
-XX:+PrintSafepointStatistics -Xlog:safepoint
-XX:SoftRefLRUPolicyMSPerMB=3000
jvm
-XX:+PrintStringTableStatistics
-XX:StringTableSize=N
jdk 8的默认大小是756760jdk8使用g1 gc后,加上以上参数,能够开启字符串重排 -XX:+UseStringDeduplication高并发
-XX:+UseStringDeduplication
优化
-XX:AutoBoxCacheMax=N
自动拆装箱缓存值大小设置 ,默认是-128到127spa
-XX:AutoBoxCacheMax=20000
改成最大值2万线程
-XX:-UseBiasedLocking
-Xmx3000m
-Xms200m
-XX:newRatio=2
-XX:NewSize=800m
-XX:SurvivorRatio=8
direct memory,堆外内存是jvm内存的组成部分日志
-XX:MaxDirectMemorySize=512M
-XX:NativeMemoryTracking=summary
jcmd <pid> VM.native_memory detail // 进行 baseline,以对比分配内存变化 jcmd <pid> VM.native_memory baseline // 进行 baseline,以对比分配内存变化 jcmd <pid> VM.native_memory detail.diff
设置初始code值 -XX:InitialCodeCacheSize=4095
设置code最大值 -XX:ReservedCodeCacheSize=18M
-XX:MaxMetaspaceSize=23m
-XX:MetaspaceSize=10M
-Xss2M
栈初始大小-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintReferenceGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
打印GC时间戳
-XX:PrintReferenceGC
打印引用gc日志
-XX:+UseSerialGC
-XX:UseParNewGC -XX:UseConcMarkSweepGC
-XX:UserParallelGC
-XX:MaxGCPauseMillis=value //停顿value毫秒 -XX:GCTimeRatio=N //GC时间和用户时间比例=1/(N+1),如设置49, 则为1/(1+49)既2%的时间
开启G1GC -XX:UseG1GC
设置region区域大小; -XX:G1HeapRegionSzie=<N>
, 例如 n=16
设置在mixedGc中老年代regin的比例 -XX:G1MixedGCLiveThresholdPercent
默认是85
混合垃圾收集期间,每次进入CSet的oldRegion的最大阈值;默认是java堆的10% -XX:G1OldCSetRegionThresholdPercent
自适应老年代并发标志阀门值 -XX:+G1UseAdaptiveIHOP
每次old并发标记完,mixedGc执行的次数,默认是8 -XX:G1MixedGCCountTarget=8