程序出现内存溢出问题,在同事机子上程序运行正常,在我机子上老是报内存溢出的错误,而且单起tomcat会好一些,用Myeclipse启动tomcat频繁报错,报错信息如下:
报错信息 
2012-08-27 15:55:56 org.apache.catalina.core.StandardWrapperValve invoke 
严重: Servlet.service() for servlet default threw exception 
java.lang.OutOfMemoryError: PermGen space 
at sun.misc.Unsafe.defineClass(Native Method) 
at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45) 
at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381) 
at java.security.AccessController.doPrivileged(Native Method) 
at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
 at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:585)

解决方案 »

  1.   

    假如将tomcat分配的内存会不会有帮助呢?
      

  2.   

    tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:
    JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
    需要把这个两个参数值调大。例如:
    JAVA_OPTS='-Xms256m -Xmx512m'
    表示初始化内存为256MB,可以使用的最大内存为512MB 
      

  3.   

    在tomcat下部署的工程太多,造成内存溢出,myEclipse下一般情况下,部署到3个工程时就会出现这个错误,建议你,tomcat下的不用的工程删掉,然后再试试就ok.
      

  4.   

    安装版的话  config配置一下内存大小就好了  不行的话myEclipse的项目colse不用的  一个加载到tomcat上就好了