工程运行时内存不足的问题

在java运行时内存不足,一般是java虚拟机的空间不足,工程运行有两个地方的内存需要考虑,一个事tomcat内存,一个事eclipse的内存


1.

Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出.
MyEclipse启动Tomcat无视catalina.bat中的内存设置。
   则需要做如下设置即可解决:
   MyEclipse --> Window --> Preference... -->MyEclipse --> Application Servers -->
   Tomcat --> Tomcat 6.X --> JDK --> Optional Java VMarguments :进行设置
   设置的内容:-Xms256m -Xmx512m
2.
编辑�TALINA_HOME%/bin下面的catalina.bat文件,在最上面第一行前面写上 
set JAVA_OPTS=-Xms512m -Xmx1024m
 其中-Xms表示jvm最小内存数,-Xmx表示最大内存数比如我这里都设置成最小512,最大1024当然,这个最小最大并不是只能使用1024的意思,其实这个设置是对系统来设置的,因为这个jvm占用内存数实际上是针对虚拟内存来说,这个设置表示,无论系统怎么占用虚拟内存,都要保证最小512M的虚拟内存共给jvm使用,当然,就算我jvm占用再大,也不会超过1024,来威胁系统的内存使用


myeclipse下设置tomcat的内存

-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m


-Xms:表示jvm堆内存初始化大小

-Xmx:表示jvm堆内存可被分配的最大上限

-xx:MaxNewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于 -Xmx的值;

-XX:MaxPermSize:表示对非堆区域设置的最大值

-XX:PermSize:表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存)

但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。

你可能感兴趣的:(工程运行时内存不足的问题)