GC


VM 参数

项目 参数
堆初始大小 -Xms
堆最大大小 -Xmx 或 -XX:MaxHeapSize=size
新生代大小 Xmn 或 (-XX:NewSize=size + -XX:MaxNewSize=size )
幸存区比例(动态) -XX:InitialSurvivorRatio=ratio 和 -XX:+UseAdaptiveSizePolicy
幸存区比例 -XX:SurvivorRatio=ratio
晋升阈值 -XX:MaxTenuringThreshold=threshold
晋升详情 -XX:+PrintTenuringDistribution
GC详情 -XX:+PrintGCDetails -verbose:gc
FullGC 前 MinorGC -XX:+ScavengeBeforeFullGC

串行

GC 算法 参数
Serial GC 复制 -XX:+UseSerialGC
Serial Old 标记整理 -XX:+UseSerialGC

吞吐量优先

GC 参数
ParallelGC -XX:+UseParallelGC
ParallelOldGC -XX:+UseParallelOldGC
参数 说明
-XX:GCTimeRatio=ratio ratio 默认为 99
-XX:MaxGCPauseMillis=ms 默认值为 200ms
-XX:ParallelGCThreads=n CPU 核数比较少时,为核心数

1/(1 + ratio) = 1/(1+99)=0.01=1%。 由于 ratio 默认值过于苛刻,一般我们设置 ratio 为 19, 1/(1 + ratio) = 1/(1+19)=0.05=5%

响应时间优先

参数 说明
-XX:+UseConcMarkSweepGC ~ -XX:+UseParNewGC
-XX:ParallelGCThreads=n
-XX:ConcGCThreads=threads
-XX:CMSInitiatingOccupancyFraction=percent 老年代内存占用达到 percent 则执行垃圾回收
-XX:+CMSScavengeBeforeRemark