回覆列表
  • 1 # 使用者644794095124

    解決方法是加大記憶體。

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

    2、為什麼會記憶體益出:這一部分用於存放Class和Meta的資訊,Class在被 Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同,GC(Garbage Collection)不會在主程式執行期對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。這種錯誤常見在web伺服器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm預設的大小(4M)那麼就會產生此錯誤資訊了。

    3、解決方法: 手動設定MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m。

    4、建議:將相同的第三方jar檔案移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文件重複佔用記憶體的目的。

    5、在tomcat中redeploy時出現outofmemory的錯誤. 可以有以下幾個方面的原因: (1)使用了proxool,因為proxool內部包含了一個老版本的cglib。

    (2)log4j,最好不用,只用common-logging。

    (3)老版本的cglib,快點更新到最新版。

  • 中秋節和大豐收的關聯?
  • 《童年》這本書的主要概括和中心思想分別是什麼?