Xms 是指設定程序啓動時佔用內存大小。一般來講,大點,程序會啓動的快一點,但是也可能會導致機器暫時間變慢。
Xmx 是指設定程序運行期間最大可佔用的內存大小。如果程序運行需要佔用更多的內存,超出了這個設置值,就會拋出OutOfMemory異常。
Xmn 是指年輕代大小。(整個堆大小=年輕代大小 + 年老代大小 + 持久代大小 。持久代一般固定大小爲64m,所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置爲整個堆的3/8。)
Xss 是指設定每個線程的堆棧大小。這個就要依據你的程序,看一個線程大約需要佔用多少內存,可能會有多少線程同時運行等
-Xms:初始堆大小
-Xmx:最大堆大小
-XX:NewSize=n:設置年輕代大小(Xmn)
-XX:NewRatio=n:設置年輕代和年老代的比值。如:爲3,表示年輕代與年老代比值爲1:3,年輕代佔整個年輕代年老代和的1/4
-XX:SurvivorRatio=n:年輕代中Eden區與兩個Survivor區的比值。注意Survivor區有兩個。如:3,表示Eden:Survivor=3:2,一個Survivor區佔整個年輕代的1/5
-XX:MaxPermSize=n:設置持久代大小
堆的內存分配用-Xms和-Xmx
-Xms分配堆最小內存,默認爲物理內存的1/64;-Xmx分配最大內存,默認爲物理內存的1/4。
非堆內存分配用-XX:PermSize和-XX:MaxPermSize
-XX:PermSize分配非堆最小內存,默認爲物理內存的1/64;-XX:MaxPermSize分配最大內存,默認爲物理內存的1/4。