前言
前後臺調試過程中某個查詢操作導致了後臺報錯java.lang.OutOfMemoryError: PermGen space,百度了一下說是內存溢出,設置JVM參數就能解決,確實是如此。
引用別人的解釋:
- OutOfMemoryError: PermGen space 非堆溢出(永久保存區域溢出)
這種錯誤常見在web服務器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那麼就會產生此錯誤信息了。如果web app用了大量的第三方jar或者應用有太多的class文件而恰好MaxPermSize設置較小,超出了也會導致這塊內存的佔用過多造成溢出,或者tomcat熱部署時侯不會清理前面加載的環境,只會將context更改爲新部署的,非堆存的內容就會越來越多。
解決:
設置JVM內存參數:
-Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m