解决JVM内存溢出问题(转)
今天遇到了一个问题,当我在增加配置文件(*.xml)内容的时候,重新启动tomcat6时,控制台报错:java.lang.StackOverflowError;
即,栈溢出错误。
内存溢出,即程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 内存溢出的问题要看业务和系统大小而定。
查看jvm内存
首先我们可以查看jvm内存,在运行里面输入cmd然后输入jconsole,打开Java监视和管理控制台;
选择本地进程连接:
有3种解决JVM内存溢出的方式:
第一种,将没用的配置文件删除。减少配置文件加载入内存;
第二种,扩大JVM的内存。
1、在Eclipse中JDK的配置中加上,-XX:MaxDirectMemorySize=128;
2、改变JVM内存大小的方法:java-Xms100m-Xmx250memory;
第三种,tomcat7比tomcat6设置的默认内存要大一些,所以可以换tomcat7试试;