【转】解决tomcat内存溢出问题!(java heap space)--windows平台版本

java heap space 是指java 堆空间不足.

根据异常信息我们即可断定是由于JVM堆空间不足引起异常.

解决方法:

          1.加大JVM堆空间大小(最简单的方法,但解决不了根本问题)

               1>直接运行startup.bat启动tomcat

                     这种启动方式tomcat首先读取catalina.bat文件,我们需要在catalina.bat文件的第一行

                    或者在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下代码:

                     set JAVA_OPTS= -Xms128m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

               2>MyEclipse或其它IDE启动tomcat(以MyEclipse为例)

                      在这种启动tomcat方式下,程序是不读catalina.bat这个文件的,所以你在里面设置了参数也不管用的!应该在MyEclipse的配置服务

                      器的画面,选中要设置的tomcat,点开+号,下面有JDK的设置.在Optional Java VM arguments输入域中输入-Xms128m -Xmx512m

                      -XX:MaxNewSize=256m -XX:MaxPermSize=256m个参数.

               3>系统服务版tomcat

                      如果使用的是服务版tomcat,打开tomcat服务主界面,打开Java选项卡,在Initial memory pool输入框和Maximun memory pool输

                     入框输入合适的大小.在Java options中输入 -XX:MaxNewSize=256m -XX:MaxPermSize=256m

          2.代码调优

              系统参数设置的再大,也扛不过应用程序长时间运行或大量用户同时访问.在程序中我们应该注意Java性能优化.急时释放没必要的内存!

               1>急时把使用完的集合或大对象的值置为NULL

               2>在Web开发中,尽量使用Request作用域存放变量,如果Request不能满足要求时,可以使Session作用域,但使用完毕后并没有再用到的

                   必要时,急时从Session作用域中把变量删除!

应用程序在开发阶段有时没必要优化JVM一些系统参数,但应用程序在生产阶段必须优化JVM参数.防止应用程序瘫痪.提高应用程序性能.

你可能感兴趣的:(tomcat)