dsczijizuo 2016-06-21 03:11 采纳率: 33.3%
浏览 1709
已采纳

java.lang.OutOfMemoryError: Java heap space

用xml文件创建RRD的时候,报错,查明是xml太大,其他小的xml没有问题可以生成rrd,试了在run configuration里面加大内存,但还是不行

  • 写回答

3条回答 默认 最新

  • javashareauthor 2016-06-21 03:26
    关注

    一、增加jvm的内存大小。方法有: 1)在执行某个class文件时候,可以使用java -Xmx256M aa.class来设置运行aa.class时jvm所允许占用的最大内存为256M。 2)对tomcat容器,可以在启动时对jvm设置内存限度。对tomcat,可以在catalina.bat中添加:

    set CATALINA_OPTS=-Xms128M -Xmx256M
    set JAVA_OPTS=-Xms128M -Xmx256M
    或者把%CATALINA_OPTS%和%JAVA_OPTS%代替为-Xms128M -Xmx256M

    二 对resin容器,同样可以在启动时对jvm设置内存限度。在bin文件夹下创建一个startup.bat文件,内容如下:

    @echo off
    call "httpd.exe" "-Xms128M" "-Xmx256M"
    :end
    其中"-Xms128M"为最小内存,"-Xmx256M"为最大内存。

    三 优化程序,释放垃圾。

    主要包括避免死循环,应该及时释放种资源:内存, 数据库的各种连接,防止一次载入太多的数据。导致java.lang.OutOfMemoryError的根本原因是程序不健壮。因此,从根本上解决Java内存溢出的唯一方法就是修改程序,及时地释放没用的对象,释放内存空间。 遇到该错误的时候要仔细检查程序,嘿嘿,遇多一次这种问题之后,以后写程序就会小心多了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料