內存溢出:報錯java.lang.OutOfMemoryError: PermGen space

前言

  前後臺調試過程中某個查詢操作導致了後臺報錯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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章