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

来源:互联网 发布:mac 桌面上 ds.store 编辑:程序博客网 时间:2024/06/08 14:25
        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";

6 0