Xms/Xmx/Xmn/Xss區別

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。


鏈接:https://www.jianshu.com/p/bf54d8493626
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章