| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1126 人关注过本帖
标题:[求助] VB6内存溢出
只看楼主 加入收藏
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
结帖率:63.64%
收藏
 问题点数:0 回复次数:3 
[求助] VB6内存溢出
程序代码:
Private Type ExtData
    Date            As Long
    Rec(1 To 13)    As Single
End Type
Private ExtRec()     As ExtData

Private Sub Form_Load()
    ReDim ExtRec(4096, 1895) As ExtData
End Sub


2017-02-05 10:48
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:0 
你算了一下,你的数组需要多少内存吗?
17*4097*1896
131957808字节,125.8m内存
好像vb6的数组大小不得超过 64k

这个怎么都会溢出。
可以考虑使用临时文件,那怕是使用数据库为临时文件都行。

授人于鱼,不如授人于渔
早已停用QQ了
2017-02-05 11:05
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
收藏
得分:0 
回复 2楼 风吹过b
请问:

“17*4097*1896” 的 17 是什么?

17*4097*1896 应该等于:132054504。 “131957808字节”怎么算?

 我要上改成:ReDim ExtRec(4096, 1712) As ExtData,就不会溢出了,
我要读一个数据文件,共有1895个记录,每个记录的字段长度是4096

多谢!
2017-02-05 11:34
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:0 
    Date      As Long   4
    Rec(1 To 13) As Single   13
4+13=17

定长字符串,保存全部字节在原始位置
变长数组,保存长度和地址在原始位置,长度好像为8。

你可以记录每条记录起始字节,临时读,不要把这些数据完全保存到内存里。
内存再大也不是这样用的。
凡是超过10M的文件,都不建议完整读入内存。

[此贴子已经被作者于2017-2-5 12:53编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2017-02-05 12:51
快速回复:[求助] VB6内存溢出
数据加载中...
 
   



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

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