JVM堆內存參數優化,讓性能飛起來



堆內存是Java進程的重要組成部分,幾乎所有與應用相關的內存空間都和堆有關。現在主要介紹與堆內存相關的參數設置,這些參數對Java虛擬機中非常重要的,也是對程序性能有着重要的影響。讓你徹底脫離OOM內存溢出等等帶來的程序崩潰。

1、 -Xms 初始堆內存大小,當Java進程啟動時,虛擬機會分配一塊初始堆空間,可以使用-Xms指定這塊空間大小。在實際工作中,我們一般把-Xms與-Xmx的值設置為相等,這樣的好處是在程序運行時減少GC的次數,從而提高程序性能。

2、 -Xmx 當程序在運行時,堆初始空間消耗殆盡,虛擬機會對堆空間進行擴展,其擴展上限是最大堆空間,使用-Xmx參數來指定。(方便大家好記住,這里mx可以暫時理解為max最大)

3、-Xmn  此參數是用來指定新生代的大小(堆內存是分為新生代, 老年代,永久帶-在jdk1.8后移除此屬性),新生代分為Eden、from、to空間。設置一個較大新生代會降低老年代的大小,這個參數設置對系統性能已經GC行為有極大的影響。 新生代一般設置為堆內存的1/3-1/4左右。

4、-XX:SurvivorRatio 用來設置新生代中Eden空間和from/to空間的比例關系,表達式如下:-XX:SurvivorRatio=eden/from=eden/to。

5、-XX:NewRatio 可以設定老年代與新生代的比例。

 

 

示意圖如下:

 


免責聲明!

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



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