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