| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2746 人关注过本帖
标题:千里冰封进 by 万里燎原
取消只看楼主 加入收藏
万里燎原
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-26
收藏
 问题点数:0 回复次数:3 
千里冰封进 by 万里燎原
老大,新年好,一听万里燎原就知道我是谁了吧.
帮助一下.
我现在在做ERP,查询的数据量牛大,我用ArrayList<Stk>来装货物资料,而Stk本身就不小,结果超过一定数量
就会内存溢出(out of Memory),帮我看一下有什么类可以代替ArrayList的.(一定是jdk1.5,公司太土没办法)
而且因为原有代码量太大不可能用<<  临时表  >>代替,别一个就是也不能分页,因为要统计汇总.
搜索更多相关主题的帖子: 千里冰封 内存 新年 燎原 ERP 
2008-02-26 15:36
万里燎原
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-26
收藏
得分:0 
本来正统思路是这样做的,问题是它的汇总分析不是单纯的加加减减,它是把Stk_mas表的数据取一部分出来,组装成对象
然后再跟之前大量表生成的ArrayList<Object>和HashMap进行比对生成的结果,所谓一动动全身呢,误计要改上百个类,而且一出逻辑错误下面就不用做了.最后调用开元包开生板块图更是难改.至于把内存设大,我很早就知道了,现在我们工程就用调到256-512M内存,其实最根本问题是ArrayList支持不住.我看外国的网站,听说有什么内存数据库,或cache之类的,希望大家帮助解决后下,反正修改的原则只有一个就是拿大容量的向量或类代替ArrayList.
至于分页也是以上的问题,它不是单单的从数据库取东西出来显示.
2008-02-26 17:34
万里燎原
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-26
收藏
得分:0 
对老大说:1,Stk类已经有辅助类,问题是辅助类也不小(stk_mas表对应Stk类104列,客户分析时辅助类就用到50多列)2,做作一年的客户分析时把数据库查出的数据(16万左右)放到ArrayList<辅助类>时内存到100M就溢出了.但本身跑程序时就分配256-512M内存,根本没用完.
对神vLinux飘飘说:1,LinkedList也不行,测试很简单就是起一个for循环,死向ArrayList<Stk>扔就会溢出(注:LinkedList,Vector(增长100%),ArrayList(增长50%)我都试过)2,你那个在add时判断true和false的方法,比如:我第一个ArrayList
放满了,再new一个出来....到n个(直到放满了16万),问题是现在我怎么对这n个ArrayList取数据出来分析.
对神vLinux飘飘,老大说:你们说ArrayList倍增我都了解,问题出在ArrayList(包括LinkedList,Vector)在倍增时有没有用光分配的内存,实现上是没有.大个比方,你程序分配2M内存,但ArrayList在加数据时可能用1M就会溢出,就是说ArrayList使用内存是有固定大小的.
期望:找一个有数据库表机制的类代替ArrayList放数据.
最后,老大上线通知一下,整天隐身,鬼才知道你什么有上网.
2008-02-27 09:16
万里燎原
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-26
收藏
得分:0 
多谢老大和神vLinux飘飘帮助,这个论坛比csdn好多了.
2008-02-27 14:32
快速回复:千里冰封进 by 万里燎原
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018624 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved