二进制数据写入内存,到一定量后写入文件.

时间:2022-05-25 20:58:12
哥们好
情景:String保存N个字符串数组累加的信息,实在太占内存了,每次累加VB像是重新分配内存的,例如内存占用有500M,生成二进制文件还不到50M.

正题:我想像操作二进制文件一样,可以在内存操作多个二进制数组,主要是累加信息的操作,目的就是减小STRING累加时的内存占用,内存中的数据到达一定量累加后就需要写入文件一次的.

不知大家明不明白,但我主要目的是减小字符串N次累加占用内存的问题,如哥们有好方法请写个简单的例子.分不多,请谅解.

7 个解决方案

#1


总发贴7
正常结贴2
未结贴5

#2


先不说分多少,关键是要结帖:)
没明白你的整个设计的原理,为啥不在中间执行时用long型变量保存累加结果,而在最后需要按字符串输出时再转换为string变量呢.

#3


引用 2 楼 bcrun 的回复:
先不说分多少,关键是要结帖:)
没明白你的整个设计的原理,为啥不在中间执行时用long型变量保存累加结果,而在最后需要按字符串输出时再转换为string变量呢.
累加连接,是变长型字符串的,不固定,有的可能有100000个字符,有的可能只有几十个字符吧.因为使用STRING来保存这些信息占用内存好大,不知有没有使用方法,当然生成文件在磁盘是不可取的,因为IO和效率问题~

#4


引用楼主 bac2001 的回复:
哥们好
情景:String保存N个字符串数组累加的信息,实在太占内存了,每次累加VB像是重新分配内存的,例如内存占用有500M,生成二进制文件还不到50M.

正题:我想像操作二进制文件一样,可以在内存操作多个二进制数组,主要是累加信息的操作,目的就是减小STRING累加时的内存占用,内存中的数据到达一定量累加后就需要写入文件一次的.

不知大家明不明白,但我主要目的是减小字符串N次累加……

建议:

不直接对一个字符串变量进行累加,而是使用字符串数组.

在每次需要累加时,增加下标.

最后,在需要保存时,使用JOIN函数.

试试吧,这个改动应该不会很大的.

#5


引用 4 楼 myjian 的回复:
引用楼主 bac2001 的回复:
哥们好
情景:String保存N个字符串数组累加的信息,实在太占内存了,每次累加VB像是重新分配内存的,例如内存占用有500M,生成二进制文件还不到50M.

正题:我想像操作二进制文件一样,可以在内存操作多个二进制数组,主要是累加信息的操作,目的就是减小STRING累加时的内存占用,内存中的数据到达一定量累加后就需要写入文件一次的.

不知大家明不……
谢谢回复,原来的已经使用这种数组方式记录了多个字符串了,因记录太多占用内存好大,所以如果再分别开数组我想内存占用更大,试过用自定义类型存为BYTE,测试结果占用比原来更大了一些~

#6


试一下吧.

#7


对于更多的复杂的字符串连接操作,你应该使用StringBuilter类.使用字符串数组,使用JOIN函数好像也不错.

#1


总发贴7
正常结贴2
未结贴5

#2


先不说分多少,关键是要结帖:)
没明白你的整个设计的原理,为啥不在中间执行时用long型变量保存累加结果,而在最后需要按字符串输出时再转换为string变量呢.

#3


引用 2 楼 bcrun 的回复:
先不说分多少,关键是要结帖:)
没明白你的整个设计的原理,为啥不在中间执行时用long型变量保存累加结果,而在最后需要按字符串输出时再转换为string变量呢.
累加连接,是变长型字符串的,不固定,有的可能有100000个字符,有的可能只有几十个字符吧.因为使用STRING来保存这些信息占用内存好大,不知有没有使用方法,当然生成文件在磁盘是不可取的,因为IO和效率问题~

#4


引用楼主 bac2001 的回复:
哥们好
情景:String保存N个字符串数组累加的信息,实在太占内存了,每次累加VB像是重新分配内存的,例如内存占用有500M,生成二进制文件还不到50M.

正题:我想像操作二进制文件一样,可以在内存操作多个二进制数组,主要是累加信息的操作,目的就是减小STRING累加时的内存占用,内存中的数据到达一定量累加后就需要写入文件一次的.

不知大家明不明白,但我主要目的是减小字符串N次累加……

建议:

不直接对一个字符串变量进行累加,而是使用字符串数组.

在每次需要累加时,增加下标.

最后,在需要保存时,使用JOIN函数.

试试吧,这个改动应该不会很大的.

#5


引用 4 楼 myjian 的回复:
引用楼主 bac2001 的回复:
哥们好
情景:String保存N个字符串数组累加的信息,实在太占内存了,每次累加VB像是重新分配内存的,例如内存占用有500M,生成二进制文件还不到50M.

正题:我想像操作二进制文件一样,可以在内存操作多个二进制数组,主要是累加信息的操作,目的就是减小STRING累加时的内存占用,内存中的数据到达一定量累加后就需要写入文件一次的.

不知大家明不……
谢谢回复,原来的已经使用这种数组方式记录了多个字符串了,因记录太多占用内存好大,所以如果再分别开数组我想内存占用更大,试过用自定义类型存为BYTE,测试结果占用比原来更大了一些~

#6


试一下吧.

#7


对于更多的复杂的字符串连接操作,你应该使用StringBuilter类.使用字符串数组,使用JOIN函数好像也不错.