大家来看看,帮我解决一下问题,我做了个程序一直出现是内存溢出,原因是有好多文件和图片不能及时释放回收,我想了好多办法人解决不了,有懂得内存溢出的吗,帮我解决一下,给出点办法。谢谢了,急需解决。

解决方案 »

  1.   

    加大虚拟内存:
    单文件的jvm内存进行设置
    默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。
    设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。
    java -Xms64m -Xmx256m Test
    -Xms是设置内存初始化的大小
    -Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小)tomcat启动jvm内存设置Linux:
    在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh添加:JAVA_OPTS='-Xms512m -Xmx1024m'要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。-Xms:初始值
    -Xmx:最大值
    -Xmn:最小值Windows
    在catalina.bat最前面加入
    set JAVA_OPTS=-Xms128m -Xmx350m 如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了..windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.解决办法:
    修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
    原值为
    -Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
    -Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
    -Xrs加入 -Xms300m -Xmx350m 
    重起tomcat服务,设置生效weblogic启动jvm内存设置
    在weblogic中,可以在startweblogic.cmd中对每个domain虚拟内存的大小进行设置,默认的设置是在commEnv.cmd里面。JBoss
    默认可以使用的内存为64MB 
    $JBOSSDIR$/bin/run.config 
    JAVA_OPTS = "-server -Xms128 -Xmx512"
    eclipse 
    在所在目录下,键入 
    eclipse.exe -vmargs -Xms256m -Xmx512m 
    256m表示JVM堆内存最小值 
    512m表示JVM堆内存最大
    Websphere 
    进入控制台去设置:应用程序服务器 > server1 > 进程定义 > Java 虚拟机