MyEclipse內存溢出問題解決方法


往MyEclipse  Window/Preferences/MyEclipse……/Servers/Tomcat/ Tomcat 6.x/JDK

Optional Java VM arguments:

輸入:-Xms256m -Xmx512m -XX:MaxNewSize=128m -XX:MaxPermSize=256m

解釋:

(1)-Xms400m:初始物理內存值(堆內存)

(2)-Xmx400m:最大物理內存值(堆內存)

(3)-XX:MaxNewSize=1024m:最大New區域值(非堆內存)

(4)-XX:MaxPermSize=1024m:最大永久域的值(非堆內存)

 

需要掌握知識點:

1、java把內存分兩種:一種是棧內存,另一種是堆內存。

2、其默認空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。如果內存剩余不到40%,JVM就會增大堆到Xmx設置的值,內存剩余超過70%,JVM就會減小堆到Xms設置的值。所以服務器的Xmx和Xms設置一般應該設置相同避免每次GC后都要調整虛擬機堆的大小。假設物理內存無限大,那么JVM內存的最大值跟操作系統有關,一般32位機是1.5g到3g之間,而64位的就不會有限制了。

注意:如果Xms超過了Xmx值,或者堆最大值和非堆最大值的總和超過了物理內存或者操作系統的最大限制都會引起服務器啟動不起來。

3、另一個是java內存堆不足時,會不斷調用GC,若連續回收都解決不了內存堆不足的問題時,就會報out of memory錯誤。

4、在函數中定義的基本類型變量和對象的引用變量都在函數的棧內存中分配。

5、堆內存用來存放由new創建的對象和數組。

6、堆的優勢是可以動態分配內存大小,生存期也不必事先告訴編譯器,因為它是在運行時動態分配內存的。缺點就是要在運行時動態分配內存,存取速度較慢。

7、棧的優勢是存取速度比堆要快,缺點是存在棧中的數據大小與生存期必須是確定的無靈活性。

8、Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值。

9、java堆分為三個區:New、Old和Permanent。


免責聲明!

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



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