java JVM : Xms Xmx PermSize MaxPermSize 區別

java JVM : Xms Xmx PermSize MaxPermSize 區別java

 
 java JVM虛擬機選項: Xms Xmx PermSize MaxPermSize 區別  
Xms 是指設定程序啓動時佔用內存大小。通常來說,大點,程序會啓動的 快一點,可是也可能會致使機器暫時間變慢。
Xmx 是指設定程序運行期間最大可佔用的內存大小。若是程序運行須要佔 用更多的內存,超出了這個設置值,就會拋出OutOfMemory 異常。
Xss 是指設定每一個線程的堆棧大小。這個就要依據你的程序,看一個線程 大約須要佔用多少內存,可能會有多少線程同時運行等。
 
 以上三個參數的設置都是默認以Byte 爲單位的,也能夠在數字後面添加 [k/K]或者[m/M]來表示KB 或者MB。並且,超過機器自己的內存大小也是不可 以的,
 不然就等着機器變慢而不是程序變慢了。 
 所以,對於通常的java 應用程序來說,咱們只要把前兩個參數設置合適基 本上就能夠了。第三個參數仍是須要有很強的 各應用程序的設置方法 
 
-Xmx1600m -XX:PermSize=64m -XX:MaxPermSize=256m 
-Xms40m -Xmx512m
 
java JVM捏造機選項: Xms Xmx PermSize MaxPermSize 差異
 
java當然是主動採用內存,可是利用步伐,尤爲辦事器步伐最好根據業務環境指明內存分派限定。否則大概致使利用步伐宕失。
 
舉例闡明含義:
 
-Xms128m
 
表現JVM Heap(堆內存)最小尺寸128MB,初始分派
 
-Xmx512m
 
表現JVM Heap(堆內存)最大允許的尺寸256MB,按需分派。
 
闡明:假若-Xmx不指定大概指定偏小,利用大概會致使java.lang.OutOfMemory毛病,此毛病來自JVM不是Throwable的,沒法用try...catch捕獲。
 
PermSize和MaxPermSize指明捏造機爲java永世天生東西(Permanate generation)如,class東西、要領東西這些可反射(reflective)東西分派內存限定,這些內存不包含在Heap(堆內存)區之中。
 
-XX:PermSize=64MB 最小尺寸,初始分派
 
-XX:MaxPermSize=256MB 最大允許分派尺寸,按需分派
 
太小會致使:java.lang.OutOfMemoryError: PermGen space
 
MaxPermSize缺省值和-server -client選項相干。
 
-server選項下默認MaxPermSize爲64m
 
-client選項下默認MaxPermSize爲32m
 
經歷:
 
一、慎用最小限定選項Xms,PermSize已節儉系統資源。
 
修正捏造內存"%jboss_home%\bin\run.conf"
 
JAVA_OPTS="-Xms256m -Xmx1024m -XX:MaxPermSize=512m
 
java.lang.OutOfMemoryError 涌現時,有多種環境,好比:PermGen space ,Java heap space 。
 
遇到的是java.lang.OutOfMemoryError: PermGen space ,是內存的永世保 存地區溢出了,永世生存地區是存放class信息和meta信息的,分派了後,jvm是不會往採用的。必須讓jvm分派更多的permsize,才幹辦理這個標題。jvm

相關文章
相關標籤/搜索