剖析OutOfMemoryError: PermGen space产生原因及解决方法

最后更新于:2022-04-01 15:55:46

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。OutOfMemoryError: PermGen ; 这一区域用于存放Class和Meta的信息。 产生原因: Class在被加载的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果应用会加载很多class的话,就很可能出现PermGen space错误。 这种错误常见在web服务器对JSP进行pre compile的时候。 解决方法:就是加大将PermGen space区域的内存,也就是把MaxPermSize的大小调大如下: -Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m; 如果是tomcat报这个错: ~~~ 在# OS specific support. $var _must_ be set to either true or false.上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128M"; ~~~
';