permgen space
的全稱是permanent generation space,是指內(nèi)存的永久保存區(qū)域outofmemoryerror: permgen space
。從文字上看就是內(nèi)存溢出,解決方法是加大內(nèi)存。為什么會內(nèi)存溢出,這是由于這塊內(nèi)存主要是被jvm
存放class
和meta
信息的,class在被load
的時(shí)候被放入permgen space
區(qū)域,它和存放instance
的heap
區(qū)域不同,gc
(garbage collection)不會在主程序運(yùn)行期對permgen space
進(jìn)行清理,所以如果你的app會load很多class的話,就很可能出現(xiàn)permgen space錯誤。這種錯誤常見在web服務(wù)器對jsp進(jìn)行pre compile的時(shí)候。如果你的web app下都用了大量的第三方j(luò)ar, 其大小超過了jvm默認(rèn)的大小(4m)那么就會產(chǎn)生此錯誤信息了。
問題背景:
tomcat
啟動了太多的項(xiàng)目,或者有的項(xiàng)目引用了太多的jar
包,或者反射生成了太多的類,異或有太多的常量池,就有可能會報(bào)java.lang.outofmemoryerror: permgen space
的錯誤,我們知道可以通過jvm
參數(shù) -xx:maxpermsize=256m
來配置這部分堆內(nèi)存的大小。
在eclipse
中如何配置tomcat
的內(nèi)存大小呢?
手動設(shè)置maxpermsize大小
首先需要雙擊tomcat server
,如下圖所示:
雙擊上圖后會出現(xiàn),tomcat
配置的界面:
然后再點(diǎn)擊上圖的,紅色矩形框的鏈接,會彈出tomcat
參數(shù)配置的節(jié)面,要選擇arguments
參數(shù)框:
如上圖在vm arguments
文本框內(nèi)設(shè)置 -xx:maxpermsize=256m
的值即可, 當(dāng)然此處還可以添加其他jvm
參數(shù),比如最大內(nèi)存,最小內(nèi)存等。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
原文鏈接:https://blog.csdn.net/moneyshi/article/details/51007109