1、SurvivorRatio:
1.1、新生代2個Survivor區和Eden區的比值,默認值為8;即Eden區:From區:To區 = 8: 1:1
1.2、調小SurvivorRatio會增大from和to的空間大小,減小Eden空間; 調大SurvivorRatio會減小from和to的空間,增大Eden空間;
2、NewRatio:
新生代(Eden + 2*Survivor)與老年代(不包括永久區)的比值,JDK8的默認值為2;公司的JVM用的就是默認值(在JDK8下面觀察的)
3、計算示例:
新生代 : 老年代 = 682.5 :1365.5 = 1 :2,新生代 + 老年代 = 682.5 + 1365.5 = 2048;
Eden :From :To = 512.5 :85 :85 = 6 :1 :1 (示例中是經過修改的)
4、注意事項:
4.1、正常來說建議直接使用默認值。如果對代碼比較了解,知道代碼中變量的使用情況,並且對系統運行觀察一段時間后,在必須調優滿足吞吐量和性能的情況下才去調值;
4.2、如果通過比例來設置值達不到想要的效果,可以通過設置NewSize(新生代指定大小)和MaxNewSize(新生代最大上限)來滿足你的條件,這個是把值直接固定為你想要的值;比如在促銷系統的廣告語系統就是通過此方式來設置的;(需要注意的是:newSize應該小於-Xms值,MaxNewSize-應該小於Xmx值)