內存參數
參數 | 含義 | 默認值 | 示例 | 說明 |
-Xms | 初始堆大小 | 物理內存的1/64(<1GB) | -Xms1g | 默認(MinHeapFreeRatio參數可以調整)空余堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制. |
-Xmx | 最大堆大小 | 物理內存的1/4(<1GB) | -Xmx1g | 默認(MaxHeapFreeRatio參數可以調整)空余堆內存大於70%時,JVM會減少堆直到 -Xms的最小限制 |
-Xmn | 年輕代大小 | -Xmn512m | 注意:此處的大小是(eden+ 2 survivor space).與jmap -heap中顯示的New gen是不同的。 整個堆大小=年輕代大小 + 年老代大小 + 持久代大小. 增大年輕代后,將會減小年老代大小.此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8 |
|
-XX:NewRatio | 年輕代與年老代的比值 | -XX:NewRatio=1 | -XX:NewRatio=4表示年輕代與年老代所占比值為1:4,年輕代占整個堆棧的1/5 Xms=Xmx並且設置了Xmn的情況下,該參數不需要進行設置。 |
|
-XX:SurvivorRatio | Eden區與Survivor區的大小比值 | 默認8:1:1 | 設置為8,則兩個Survivor區與一個Eden區的比值為2:8,一個Survivor區占整個年輕代的1/10 | |
-Xss | 每個線程的堆棧大小 | JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K.更具應用的線程所需內存大小進行 調整.在相同物理內存下,減小這個值能生成更多的線程.但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右 一般小的應用, 如果棧不是很深, 應該是128k夠用的 大的應用建議使用256k。這個選項對性能影響比較大,需要嚴格的測試。 |
||
-XX:MetaspaceSize | 初始元數據空間大小 | |||
-XX:MaxMetaspaceSize=128m | 最大元數據空間大小 |
|||