outofmemoryerror怎么解决, Outofmemoryerror,即内存溢出,在java法律中很常见。发生这种情况有两种常见情况。
1、
OutOfMemoryError错误错误:PermGen空间
出现这种情况可能是因为程序中使用了大量的jar或类,导致java虚拟机加载类的空间不足,这与永久生成空间有关。
如果要解决,一般有两种方式:
1.首先是增加java虚拟机中XX:PermSize和XX:MaxPermSize参数的大小,其中XX:PermSize属于初始永久存储区大小。
XX:MaxPermSize是最大永久存储区大小。
例如,对于tomcat6.0,在catalina.sh或catalina.bat文件中的一系列环境变量名的末尾,即大约70行的位置添加一行,具体为:
JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m
如果是windows服务器,可以在系统环境变量中设置。当使用tomcat发布具有sprint struts hibernate架构的程序时,很容易出现这种内存溢出错误。可以使用上述方法,
基本上可以解决问题。
2.第二种方法是清理应用程序中web-inf/lib下的jar。如果tomcat部署了多个应用程序,并且多个应用程序使用同一个jar,那么您可以选择将公共jar移动到tomcat的公共库。
减少类的重复加载。这个方法总体来说还是不错的,当然如果可以选择的话,尽量用第一种方法会更好。
2、
OutOfMemoryError错误:Java堆空间
造成这个问题的原因也可能是java虚拟机创建了太多的对象,虚拟机分配的堆内存空间在垃圾收集之前就已经用完了,这和堆空间有关。
如果要解决这个问题,一般有两种方法:
1.首先,您可以检查程序,看看是否存在无限循环或创建大量不必要的对象。找到原因后,就可以修改程序和算法了。
2.您还可以选择增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。
比如:set JAVA_OPTS=-Xms256m -Xmx1024m
当然,具体情况要根据实际情况而定。要确定问题,然后选择正确的方式去解决。
outofmemoryerror怎么解决,以上就是本文为您收集整理的outofmemoryerror怎么解决最新内容,希望能帮到您!更多相关内容欢迎关注。