不熟悉 JDK 源码, 直接做实验看结果 :
同时设置 MaxNewSize 和 NewRatio
java -Xms200m -Xmx200m -XX:NewSize=100m -XX:MaxNewSize=100m -XX:NewRatio=3 ...
jstat -gccapacity 74825 |
可以看到 100MB, 而非 1/4, 因此 MaxNewSize 优先级高于 NewRatio.
不设置 NewSize
java -Xms200m -Xmx200m -XX:NewRatio=3 ...
jstat -gccapacity 78462 |
当没有设置 NewSize/MaxNewSize 时, 会采用 NewRatio 的值.
参考
The Second Most Important GC Tuning Knob | Oracle Jon Masamitsu's Blog