1.javax.servlet.ServletException: Java heap space或访问本机测试时访问资源速度慢
原因:JVM内存不足。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn(最小值) -Xms(初始值) -Xmx(最大值)等选项可进行设置。
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
工具:附件有tomcatMemory.jsp是查看当前服务器的内存信息,非常有用。
Windows系统下tomcat5.5解决方法(分四种情况):
1、使用startup.bat启动tomcat服务器
在安装路径下bin\catalina.bat文件内的第一行("@echo off")下加上
set JAVA_OPTS=-Xms128m -Xmx256m
2、使用tomcat.ext启动tomcat服务器,如下图:
3、使用Eclipse进行开发(右上角是J2EE)
项目是发布到一个虚拟的路径中,可为单独的项目设置内存:
右键点击项目-->Profile As-->Profile-->Arguments-->VM arguments,在最后加上
-Xms128m -Xmx256m
4、使用MyEclipse进行开发(右上角是MyEclipse)
项目直接发送到tomcat下,在MyEclipse中设置
Window-->Preferences-->MyEclispe-->Application Servers-->Tomcat 5.x-->JDK-->Optional Java VM arguments:
-Xms128m -Xmx256m -XX:MaxPermSize=64m
注:以上方法是经过千辛万苦才总结到的,并且自己试过,绝对有效。如果有问题请与我联系。先注意系统和版本噢。