Caused by: java.lang.OutOfMemoryError: Java heap space

系统需要导出数据到excel,大概180000条左右.一直报Caused by: java.lang.OutOfMemoryError: Java heap space这个错误.

本地开发是tomcat,测试服务器是websphere.

原因是jvm内存不足

修改tomcat默认VM内存

1.在eclipse中双击service打开Overview窗口
2.点击Open launch configuration,打开Edit configuration窗口
3.选择Arguments 在VM arguments 的最后添加如下代码-Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=512m -XX:MaxPermSize=256m

修改websphere默认VM内存
测试服务器,打开websphere控制台  服务器--应用程序服务器--server1--服务器基础结构--进程定义--java虚拟机--设置初始堆和最大堆,设置通用JVM参数-Dibm.stream.nio=true
完了重启websphere就行了
改完之后还是导不出来,但后台已经没有报错,还有一个小问题,因为我前台用的extjs,Ext.Ajax.request,里面没有设置timout属性,我添加了timeout属性,最终顺利导出了.

 

-Xms jvm初始化堆的大小

-Xmx jvm堆的最大值

这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值