-XX:+PrintFlagsFinaljava
查看堆的默認值,使用下面的代碼。
其中 InitialHeapSize 爲最開始的堆的大小,MaxHeapSize 爲堆的最大值。bash
$ java -XX:+PrintFlagsFinal -version | grep HeapSize
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 134217728 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 2147483648 {product}
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
複製代碼
查看棧的默認值, 其中 ThreadStackSize 爲棧內存的大小。ui
$ java -XX:+PrintFlagsFinal -version | grep ThreadStackSize
intx CompilerThreadStackSize = 0 {pd product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
複製代碼
-Xmx:初始堆的大小spa
-Xms:最大堆大小,建議這兩個參數大小保持一致,爲物理內存的 1/4code
-Xmn:指定新生代的大小(Eden + Survior from + Survior to)的大小,增大新生代的大小,老年代的大小將被減少,sun 官方推薦 新生代的大小:堆 = 3 : 8cdn
-XX:NewSize:設置新生代大小blog
-XX:MaxNewSize:設置新生代的最大值-Xmn 至關於設同時設置 NewSize=MaxNewSize內存
-XX:NewRation:老年代:新生代 = 4,即 old:(Eden + Survivor from + Survivor to) ,則說明新生代爲整個堆區的 1/5string
-XX:SurvivorRation:設置 Eden 區和 Survivor。
默認值爲8;即:Eden:Survivor=8:1 ==> Eden:Survivor from:Survivor to = 8:1:1
若值爲3,即:Eden:Survivor=8:1 ==> Eden:Survivor from:Survivor to = 3:1:1it