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