IDEA控制台問題:java lang OutOfMemoryError:PermGen space


PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域。

OutOfMemoryError: PermGen space從表面上看就是內存溢出解決方法也一定是加大內存

為什么會內存溢出
  
  這一部分用於存放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)那么就會產生此錯誤信息了。

解決方法1:
  手動設置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 文檔重復占用內存的目的。

解決方法2
  Tomcat配置中的 VM options選項,添加: 
    -Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

-Xms,表示程序啟動時,JVM 堆的初始化最小尺寸參數;
-Xmx,表示程序啟動時,JVM 堆的初始化最大尺寸參數;
-XX:PermSize,表示程序啟動時,JVM 方法區的初始化最小尺寸參數;
-XX:MaxPermSize,表示程序啟動時,JVM 方法區的初始化最大尺寸參數。
 


免責聲明!

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



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