項目運行時,有時遇到java.lang.OutOfMemoryError: PermGen space問題。java
PermGen space,全稱是Permanent Generation space,指的是內存中的永久區域。 當java中間件啓動時,會將相關的jar包和.class加載到永久區域,而用就區域的空間是固定的,雖然能夠設置。報這個錯的緣由就是在啓動加載.class時,永久區域溢出了。服務器
因爲項目涉及中間件不少,在項目啓動時須要進行中間件的類加載操做,形成永久區的OOM。jvm
開發過程當中默認配置分配的空間不足。服務器部署通常內存很大,一樣狀況下沒有出現OutOfMemoryError異常。因此本地開發須要修改jvm的參數。ide
IDE使用的是idea,須要加入jvm啓動參數:idea
-server -XX:PermSize=128M -XX:MaxPermSize=256mspa