======================================================
注:本文源代码点此下载
======================================================
因为程序要从数据读取近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^)/
本文探讨了在处理大量数据时遇到的Java堆栈溢出问题,并提供了两种解决方案:通过设置环境变量或直接在执行类文件时指定参数,以优化内存使用并提升执行速度。
1855

被折叠的 条评论
为什么被折叠?



