解決eclipse的PermGen space問題


以下內容轉載自網上:

在eclipse.ini配置文件中加上以下兩行 
-XX:PermSize=128M  
-XX:MaxPermSize=128M

加上上2行后,我的eclipse.ini文件如下所示:

-showsplash 
org.eclipse.platform 
--launcher.XXMaxPermSize 
512m 
-vmargs 
-Xms256m 
-Xmx512m 
-XX:PermSize=128M  
-XX:MaxPermSize=128M

這里的內存大小根據自己的物理內存情況來決定吧。

從網上的資料看PermSize大一點肯定更好,而且最好是設置PermSize和MaxPermSize一樣大。理由如下: 
        PermSize 和MaxPermSize如果設置為相同還可以在一定程度上提高性能,因為,PermSize在不斷的變化中會需要轉移其中的數據。如果固定了以后,則可以減少每次擴大PermSize帶來的性能損失。

 

1、PermGen space簡介

PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域OutOfMemoryError: PermGen space從表面上看就是內存益出,解決方法也一定是加大內存。

說說為什么會內存益出: 
(1)這一部分用於存放Class和Meta的信息,Class在被 Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同。 
(2) GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。這種錯誤常見在web服務器對JSP進行pre compile的時候。

如果你的WEB APP下都用了大量的第三方jar,其大小超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。


解決方法: 手動設置MaxPermSize大小

修改TOMCAT_HOME/bin/catalina.sh,在echo "Using CATALINA_BASE:   $CATALINA_BASE"上面加入以下行: 
       JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 
建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以減少jar 文檔重復占用內存


免責聲明!

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



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