天天看點

MyEclipse啟動tomcat出現java.lang.OutOfMemoryError: PermGen space 的解決方案

PermGen space的全稱是Permanent Generation space,是指記憶體的永久儲存區域, 這塊記憶體主要是被JVM存放Class和Meta資訊的,Class在被Loader時就會被放到PermGen space中, 它和存放類執行個體(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程式運作期對 PermGen space進行清理,是以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤, 這種錯誤常見在web伺服器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm預設的大小(4M)那麼就會産生此錯誤資訊了。

一、手動設定MaxPermSize大小修改TOMCAT_HOME/bin/catalina.bat(windows系統)或者catalina.sh(unix系統)在“echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入以下行:set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=256M -XX:MaxPermSize=512m

二、如果啟動Tomcat的時候是通過MyEclipse啟動伺服器的話,需要在MyEclipse裡面同樣設定記憶體大小

MyEclipse啟動tomcat出現java.lang.OutOfMemoryError: PermGen space 的解決方案

-Xms512m -Xmx4096m -XX:MaxPermSize=128m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC

繼續閱讀