設為首頁 | 加為收藏 | 聯(lián)系我們 咨詢熱線:0632-5272123
電 話:0632-5272123
傳 真:0632-5271123
地 址: 棗莊市文化西路23號
E-mail:zzint@zzint.com
  • 技術咨詢:
  • 業(yè)務咨詢:
  • 客戶服務:
  • 服務監(jiān)督:
詳細資料 您當前的位置:網站首頁新聞動態(tài)詳細資料

java 內存溢出 OutOfMemoryError: PermGen space

今天碰到了這個問題:
javax.servlet.ServletException: PermGen space
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)

查了一下, PermGen space的全稱是Permanent Generation space,是指內存的永久保存區(qū)域OutOfMemoryError: PermGen space從表面上看就是內存益出,解決方法也一定是加大內存。說說為什么會內存益出:這一部分用于存放Class和Meta的信息,Class在被 Load的時候被放入PermGen space區(qū)域,它和和存放Instance的Heap區(qū)域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現(xiàn)PermGen space錯誤。這種錯誤常見在web服務器對JSP進行pre compile的時候。
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
把PermGen space開大點就行了
GC(Garbage Collection)應該不會對PermGen space進行清理
所以如果你的APP會LOAD很多CLASS的話,就很可能出現(xiàn)PermGen space錯誤
項目是TOMCAT的WEB APP,由于沒有在發(fā)布的時候對JSP進行pre compile,
所以那個錯誤是在運行是出現(xiàn)的,相信如果把pre compile加上的話,
在啟動APP的時候就會出錯了.
這也與我用熱部署功能相關, tomcat不重起多次部署, tomcat不會清理前面加載得環(huán)境, 僅僅是將context跟改掉為新部署得,所以將越來越多, 導致出現(xiàn)此問題
參考連接:
http://www-128.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/index.html
http://topic.csdn.net/t/20051107/17/4377324.html
http://blog.chinaunix.net/u/22374/showart.php?id=1652Array1

 

 



上篇文章:java.lang.OutOfMemoryError: PermGen space解決方法
下篇文章:IIS 上傳文件大小配置步驟(默認200K)
版權所有 棗莊市英特信息網絡有限公司 ◎2017
聯(lián)系電話:0632-5271123 5272123  總部地址:棗莊市市中區(qū)文化西路23號
魯ICP備09021689號 增值電信業(yè)務經營許可證編號:魯 B2-20080087號