前段时间拿到一个SSH项目,用Tomcat6(Myeclipse集成)启动一会儿就会抛出内存溢出错误,开发工作几乎无法进行,不停的启动内存溢出。在网上搜索多种方法仍然无效,无赖只能继续开发了几天,实在不甘心,这样总不是个办法吧。
现在总结一下:
网上常见的解决Tomcat内存溢出的方法:
1.修改tomcat启动文件,设置tomcat内存大小。
2.MyEclipse集成tomcat中配置tomcat大小。
我试图各种方法把内存设置到相对大的值,但是仍然会报内存溢出错误,通过内存监控发现java进程一度占用内存600多兆,到达这个值后不久就会抛出内存溢出错误。
通过内存分析可以发现我设置的tomcat内存最大值远远大于600多兆,说明问题不出在tomcat内存设置上。
那么详细分析一下,由于项目使用SSH框架,且项目文件达到300多兆,是一个庞大的项目,项目启动时会load大量的class,hibernate会缓存大量的数据。

一个大型SSH项目在Tomcat6.0上启动时频繁遭遇内存溢出错误,尝试调整Tomcat和MyEclipse的内存设置无效。问题根源在于 PermGen space,由于加载大量Class和Hibernate缓存导致。解决方案在于调整Java虚拟机的内存设置,通过MyEclipse的Installed JREs配置Default VM Arguments,例如 -Xms128M -Xmx512M。
最低0.47元/天 解锁文章
132

被折叠的 条评论
为什么被折叠?



