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 | |