"java.lang.OutOfMemoryError:Java PermGen space "
"java.lang.OutOfMemoryError: Java heap space"
今天就彻底干掉内存溢出的问题。
方法一:修改tomcat配置:
TOMCAT_HOME/bin/catalina.bat(Linux上为catalina.sh)文件,在
echo Using CATALINA_BASE:上面加入这一行内容:(4G内存为例)
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=512m -XX:MaxPermSize=1024m
参考地址:http://woo-program.iteye.com/blog/1243613 (实际验证过)
方法二:修改ECLIPSE配置
更改ECLIPSE文件夹下的ECLIPSE.INI文件内容如下:
-vmargs
-Xms128m
-Xmx512m
-XX:PermSize=64m
-XX:PermSize=128m
或者:
在eclipse目录下建个批处理文件eclipse.bat,用文本编辑器打开,写入如下内容:
eclipse.exe -vmargs -Xms128m -Xmx512m -XX:PermSize=128m -XX:PermSize=256m
然后保存.以后运行eclipse的时候就执行这个批处理就行了.
解释下参数的意思:
-vmargs 说明后面的参数都是java虚拟机(vm)的参数
-Xms128m 虚拟机占用系统的最小内存
-Xmx512m 虚拟机占用系统的最大内存
-XX:PermSize=64m 最小堆大小.一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置
-XX:PermSize=128m 最大堆大小.这个也适当边大些
或者:
修改启动Eclipse的快捷方式为:
D:\javaDevelop\eclipse\eclipse.exe -vmargs -Xms128m -Xmx512m -XX:PermSize=128m -XX:PermSize=256m
以上摘自:http://blog.sina.com.cn/s/blog_4c17eecb01000ako.html
自我实战:
找到tomcat的VM arguments(Preferences>Tomat>JVM Settings),然后粘贴:
-Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m(推荐)
-- Xms和XX:PermSize 表示初始化大小,Xmx和MaxPermSize表示最大值,占用内存会从初始化开始递增,直到最大值,然后报内存溢出。
-- 默认为:
后来我改成:
-Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=1024m,
报错,tomcat无法启动,应该是设置的内存超出了我本机的内存(本机2G),然后我改成了了:
-XX:PermSize=256m -XX:MaxPermSize=1024m
启动tomcat,正常了。
以下摘自:http://it.100xuexi.com/view/otdetail/20120517/4f4f95b4-682c-4c7b-9417-fb88afbb6190.html
4G内存推荐配置:
-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m