Java heap space 解决方法

本文探讨了在处理大量数据时遇到的Java堆栈溢出问题,并提供了两种解决方案:通过设置环境变量或直接在执行类文件时指定参数,以优化内存使用并提升执行速度。

======================================================
注:本文源代码点此下载
======================================================

因为程序要从数据读取近10w行记录处理,当读到9w的时候就出现 java.lang.outofmemoryerror: java heap space 这样的错误。

在网上一查可能是java的堆栈设置太小的原因。

跟据网上的答案大致有这两种解决方法:

1、设置环境变量

set java_opts= -xms32m -xmx512m

可以根据自己机器的内存进行更改,但本人测试这种方法并没有解决问题。可能是还有哪里需要设置。

2、java -xms32m -xmx800m classname

就是在执行java类文件时加上这个参数,其中classname是需要执行的确类名。(包括包名)

这个解决问题了。而且执行的速度比没有设置的时候快很多。

如果在测试的时候可能会用eclispe 这时候就需要在eclipse ->run -arguments 中的vm arguments 中输入-xms32m -xmx800m这个参数就可以了。

如果是 windows, tomcat 本身提供的工具(configure tomcat)就可以设置了 。

设置附图中红色框指示的位置就好了。

如果是unix/linux,可以

export java_opts="-xms256m -xmx512m"

当然那,具体size 应该根据计算机内存的大小来定。

另外一种错误信息是:

type exception report

message

description the server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.servletexception: servlet execution threw an exception

root cause

java.lang.outofmemoryerror: permgen space


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值