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

java 內(nèi)存溢出 OutOfMemoryError: PermGen space

今天碰到了這個(gè)問(wèn)題:
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,是指內(nèi)存的永久保存區(qū)域OutOfMemoryError: PermGen space從表面上看就是內(nèi)存益出,解決方法也一定是加大內(nèi)存。說(shuō)說(shuō)為什么會(huì)內(nèi)存益出:這一部分用于存放Class和Meta的信息,Class在被 Load的時(shí)候被放入PermGen space區(qū)域,它和和存放Instance的Heap區(qū)域不同,GC(Garbage Collection)不會(huì)在主程序運(yùn)行期對(duì)PermGen space進(jìn)行清理,所以如果你的APP會(huì)LOAD很多CLASS的話,就很可能出現(xiàn)PermGen space錯(cuò)誤。這種錯(cuò)誤常見(jiàn)在web服務(wù)器對(duì)JSP進(jìn)行pre compile的時(shí)候。
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
把PermGen space開(kāi)大點(diǎn)就行了
GC(Garbage Collection)應(yīng)該不會(huì)對(duì)PermGen space進(jìn)行清理
所以如果你的APP會(huì)LOAD很多CLASS的話,就很可能出現(xiàn)PermGen space錯(cuò)誤
項(xiàng)目是TOMCAT的WEB APP,由于沒(méi)有在發(fā)布的時(shí)候?qū)SP進(jìn)行pre compile,
所以那個(gè)錯(cuò)誤是在運(yùn)行是出現(xiàn)的,相信如果把pre compile加上的話,
在啟動(dòng)APP的時(shí)候就會(huì)出錯(cuò)了.
這也與我用熱部署功能相關(guān), tomcat不重起多次部署, tomcat不會(huì)清理前面加載得環(huán)境, 僅僅是將context跟改掉為新部署得,所以將越來(lái)越多, 導(dǎo)致出現(xiàn)此問(wè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 上傳文件大小配置步驟(默認(rèn)200K)
版權(quán)所有 棗莊市英特信息網(wǎng)絡(luò)有限公司 ◎2017
聯(lián)系電話:0632-5271123 5272123  總部地址:棗莊市市中區(qū)文化西路23號(hào)
魯ICP備09021689號(hào) 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證編號(hào):魯 B2-20080087號(hào)