在开发中我们很多人都遇到过内存溢出的情况,其实内存溢出分几种形式:
1、tomcat中java.lang.OutOfMemoryError: PermGen space异常处理(最常见的)
概念大家可以查查,其实大家还是关心解决方案:
解决方法:
(1)
手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh在
echo "Using CATALINA_BASE: $CATALINA_BASE"
上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m (2)在eclipse中修改tomcat配置: 增加:-Xms256M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M
2、java.lang.OutOfMemoryError: Java heap space
发生这种问题的原因是java虚拟机创建的对象太多,在进行垃圾回收之间,虚拟机分配的到堆内存空间已经用满了,与Heap space有关。解决这类问题有两种思路: 1. 检查程序,看是否有死循环或不必要地重复创建大量对象。找到原因后,修改程序和算法。 2. 增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。如:set JAVA_OPTS= -Xms256m -Xmx1024m
总结:内存的处理,是对于一个开发者良好开发习惯的考验,多年的开发过程,让我知道了,开发大神高手不是有多牛的技术,是对好的开发习惯一种养成,细节决定成败!