-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m


  • -Xms 最小堆的大小, 也就是當你的虛擬機啟動后, 就會分配這么大的堆內存給你  
  • -Xmx 是最大堆的大小  
  •   
  • 當最小堆占滿后,會嘗試進行GC,如果GC之后還不能得到足夠的內存(GC未必會收集到所有當前可用內存),分配新的對象,那么就會擴展堆,如果-Xmx設置的太小,擴展堆就會失敗,導致OutOfMemoryError錯誤提示。  
  • JVM參數的含義 實例見實例分析

    參數名稱 含義 默認值  
    -Xms 初始堆大小 物理內存的1/64(<1GB) 默認(MinHeapFreeRatio參數可以調整)空余堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制.
    -Xmx 最大堆大小 物理內存的1/4(<1GB) 默認(MaxHeapFreeRatio參數可以調整)空余堆內存大於70%時,JVM會減少堆直到 -Xms的最小限制
    -Xmn 年輕代大小(1.4or lator)
      注意:此處的大小是(eden+ 2 survivor space).與jmap -heap中顯示的New gen是不同的。
    整個堆大小=年輕代大小 + 年老代大小 + 持久代大小.
    增大年輕代后,將會減小年老代大小.此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8
    -XX:NewSize 設置年輕代大小(for 1.3/1.4)    
    -XX:MaxNewSize 年輕代最大值(for 1.3/1.4)    
    -XX:PermSize 設置持久代(perm gen)初始值 物理內存的1/64  
    -XX:MaxPermSize 設置持久代最大值 物理內存的1/4  
    -Xss 每個線程的堆棧大小   JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K.更具應用的線程所需內存大小進行 調整.在相同物理內存下,減小這個值能生成更多的線程.但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右
    一般小的應用, 如果棧不是很深, 應該是128k夠用的 大的應用建議使用256k。這個選項對性能影響比較大,需要嚴格的測試。(校長)
    和threadstacksize選項解釋很類似,官方文檔似乎沒有解釋,在論壇中有這樣一句話:"”
    -Xss is translated in a VM flag named ThreadStackSize”
    一般設置這個值就可以了。


  • 免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM