以下內容轉載自網上:
在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 文檔重復占用內存