eclipse 運行報java.lang.OutOfMemoryError: PermGen space解決方法


一、在window下eclipse里面Server掛的是tomcat7,一開始還是以為,tomcat配置的問題,后面發現,配置了tomcat里面的catalina.bat文件,加入 
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=108m -XX:MaxPermSize=512m 
,eclipse跑起來還是報java.lang.OutOfMemoryError: PermGen space。 
后面在網上找了資料,要在eclipse里面配置才可以。 
點擊“Run” – “Run Configurations…”,選中Tomcat Server,進入Arguments分頁,在VM arguments中加入提升初始分配空間的參數 

第一步: 

第二步:加入參數 
-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256M 

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)那么就會產生此錯誤信息了。 
建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以減少jar 文檔重復占用內存

二、在linux下部署的時候要修改catalina.sh 
JAVA_OPTS=”$JAVA_OPTS -server -Xms1536m -Xmx1536m -XX:PermSize=256m -XX:MaxPermSize=512m”


免責聲明!

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



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