关于jvm的OutOfMemory:PermGen space异常的解决

在做网校的时候,经常会在控制台会报出方法区的内存溢出,在网上找的方法,无非都是在tomcat的bin/catalina.bat文件中

设置jvm的堆的大小和方法区的大小,但是通过eclipse启动tomcat之后,没过多久就又会报方法区内存溢出。

刚开始的时候,还没有想起使用jdk自带的jvm监控工具(jconsole.exe)去查看jvm各内存区域的大小,所以以为通过在catalina.bat

中的配置应该生效了,但是还是内存溢出,实在是头痛。。。。

通过在bin/catalina.bat文件中的“rem ----- Execute The Requested Command -”这个后面增加了下面的语句

set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=512m

这个通过tomcat的startup.bat来启动时,是有效的。但是通过eclipse来启动tomcat,却不会生效。。

通过eclipse来启动tomcat需要在eclipse来设置tomcat的jvm参数,具体位置:

具体的参数代表的意思,参开jvm的参数说明。。设置之后,启动tomcat,在jconsole.exe中可以看到,设置生效了。。。

问题解决。

原文地址:https://www.cnblogs.com/wangliyue/p/5479138.html