vb 6的程序最大能用多大内存?
用vb6编的一个程序,在1G 内存的机器上运行,当读入一个大文件的时候
一超过1G的内存使用量,就出现内存不足的错误,我设置了虚拟内存
也没有改善。
哪位有办法?
[解决办法]
//因为设计上的种种要求,必须一次把全部文件内容读入内存并按行列管理
这个只能说明设计上的不合理
建议用数据库的方式操作csv文件
[解决办法]
必须一次把全部文件内容读入内存并按行列管理
感觉这里的必须就是一个错误。
[解决办法]
Win32的程序,每个进程分配4G空间,能够自由访问的只有2G
变量能够使用的空间肯定小于2G,虚拟内存再大也没用
[解决办法]
字符串有两种:变长与定长的字符串。
变长字符串最多可包含大约 20 亿 ( 2^31)个字符。
定长字符串可包含 1 到大约 64K ( 2^16 ) 个字符。
String 之字符码的范围是 0 到 255。字符集的前 128 个字符(0 到 127)对应于标准的 U.S. 键盘上的字符与符号。这前 128 个字符与 ASCII 字符集中所定义的相同。后 128 个字符(128 到 255)则代表特殊字符,例如国际字符,重音符号,货币符号及分数。
对于unicode来说一个字符在内存中需要两个字节,所以你只能用到10亿左右个字符。
如果实在不能改变CVS文件的使用方式,建议用多个字符串变量存储你的CVS文件,或者分段读入,分段处理
[解决办法]
那就分段读取文件吧。。。
1G的大文件,全部载入内存,够恐怖的。
[解决办法]
1:不要使用collection,改成数组,或者是自定义类型变量数组。
2:使用按行读取的方式处理数据,当然,可以是一次1000行,也可以是一次10行。这个方法也等于是不使用一次性读取整个文件。
3:更改程序要求,时代在变要求也要变,否则千年虫问题也不会出现了,死专牛角尖是不行的。以前能运行,现在不能运行,只能说当时的测试不到位。
[解决办法]
dim a(100000,300) as string * 10
内存也要报错的!!
[解决办法]
不重新设计,做出来也是没用的。根本没这么干的。
[解决办法]
用虚拟内存不知道能不能用。
不停的调用函数把内存里的数据记到虚拟内存里。那个函数忘记叫啥名了。到时候看看msdn吧。
[解决办法]
你写在虚拟内存里还是在硬盘上!哪读它干什么?