内存溢出 检索5万条记录 在java中导入list后内存溢出

donghanfeng 2008-02-03 08:30:52
mysql检索5万条记录后,
在java中从java.sql.resultset中把结果导入list内存溢出

使用的是默认的64兆虚拟内存。
把内存使用调到128之后当然没有问题,15万条都可以了。

估计应该是list放的内容太多,再加上resultset中的大量数据消耗了内存。
程序大概:


list<xx> 主函数 ()
{
list<xx> result = new arraylist<xx>(); //xx 自定义数据类型
java.sql.resultset resultset = 检索数据库的结果,已经取出大量数据;
while(resultset.next())
{
result.add(getOneRecord(resultset));
// ++++++
}
return result ;
}

xx getOneRecord(Resultset resultset )
{
xx one = new xx();//xx 自定义数据类型
one.setNo(resultset.get("No"));
one.setName(resultset.get("Name"));
one.setAdress(resultset.get("Adress"));
...//属性挺多
one.setInfo(resultset.get("Info"));

return one;
}


但是我想知道能否在 // ++++++ 处,添加对Resultset的处理,即取出一条数据后就删除掉以便节省资源?
搜索了帮助文档没有结果。。。。。汗
请帅哥们帮忙想一下。。。。。

...全文
2409 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
artmouse 2008-02-18
  • 打赏
  • 举报
回复
分页处理三
luoqun_ncs 2008-02-17
  • 打赏
  • 举报
回复
贴错版了
tiandiqing 2008-02-05
  • 打赏
  • 举报
回复
用分页的方式处理
donghanfeng 2008-02-04
  • 打赏
  • 举报
回复
关键是每条里面还有很多字段的
所以5万条还是很大的
。。。。64兆的内存太小了。。。。。。。
今天又搞了一下 发现数据取出后执行result.close()内存没有变化!!!

GC垃圾回收机制也不及时回收内存。。。。。郁闷
free1879 2008-02-04
  • 打赏
  • 举报
回复
5万条不至于的,除非是含有BLOB字段!再看看其它地方有没有问题!
晓风残月0110 2008-02-04
  • 打赏
  • 举报
回复
mysql 不知顶

高手都取找灵感了

灵感都用来想回家了
donghanfeng 2008-02-03
  • 打赏
  • 举报
回复
年底了,恭祝大家新年快乐
希望大家多提建议,给点灵感。。。。呵呵

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧