当前位置:家常菜>百科>科技>正文2025年05月05日 09:38 星期一

outofmemoryerror怎么解决

人气:152 ℃/2025-02-17 10:03:38

outofmemoryerror怎么解决呢?下面就让我们一起来了解一下吧:

outofmemoryerror也就是内存溢出,在java法中比较常见,出现这种一般是有两种比较常见的情况。

1、

OutOfMemoryError:PermGen space

这种情况出现可能是因为在程序中使用了大量的jar或者class,从而导致java虚拟机装载类的空间不够,也就是与Permanent Generation space有关。

若是想要解决一般有两种方法:

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共同的lib下,减少类的重复加载。这种方法总的来说还是不错的,当然若是可以选择的话还是尽量使用第一种方法会比较好。

2、

OutOfMemoryError:Java heap space

发生这种问题的原因也可能是因为java虚拟机创建的对象太多了,在进行垃圾回收之间,虚拟机所分配的到堆内存空间已经用满了,也就是与Heap space有关。

若是想要解决这个问题一般也会有两种方法:

1.首先可以检查一下程序,查看是否有死循环或者不必要地重复创建大量对象,在找到原因之后,可以修改程序与算法。

2.还可以选择增加Java虚拟机中Xms(即初始堆大小)与Xmx(即最大堆大小)参数的大小。

比如:set JAVA_OPTS= -Xms256m -Xmx1024m

当然,具体还是要根据实际情况来,要确定好问题所在然后选择正确的方式来解决即可。

  • 轩逸中控异响怎么回事?

    轩逸中控异响的原因如下:1、检查中控台上是否有纸巾、摆件、钥匙扣等,将这些异物移除,避免行车时互相碰撞;2、中控台模具有偏差或者安装时候位移出现的异响,可以用橡胶条将异响发生处...

    问答查看全文>>
  • 伤感一人的说说

    1、时间会淡化一个人的记忆,却永远无法让人淡忘那些回忆。2、我知道你还在乎我,这就够了,我等你玩累了那一天。3、别人的幸福,未必就有你看到的那样美好。4、失望攒够了就离开吧,难...

    说说查看全文>>
  • 汽车仪表盘显示感叹号是什么问题?

    汽车仪表盘显示感叹号是以下三种问题导致的:1、黄色三角标志,中间一个感叹号,这个是驱动力指示灯,也就是地面附着力控制系统指示灯。当驱动力指示灯亮时,是提醒车主需要关闭驱动力控制...

    问答查看全文>>
  • 车改气再改过来怎么费油了?

    车改气再改过来费油的恢复方法:1、一般来说,要求一套燃料系统同时满足两种燃料的使用,并让两种燃料都达到最佳状态时不可能的。改装后的汽车基本都是以天然气为主要燃料,所以发动机更切...

    问答查看全文>>
  • 合肥车辆年审地点在哪?

    合肥车辆年审地点如下:1、合肥市公安局交通警察支队车辆管理所,具体地址:合肥市经开区宿松路与紫石路交口;2、合肥市公安局交通警察支队车管所蜀山工作站,具体地址:蜀山经济开发区湖...

    问答查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版