VB中如何提高读写文件的效率?
VB中读写二进制文件数据的话,一般是用OPEN...GET...PUT...的方法,而且常用比特型数组作为读写块.那么怎样进一步提高读写的速度呢?单纯增大块的大小可以吗?还有什么更好的办法? 问题点数:71、回复次数:13Top
1 楼wwqna(york)回复于 2005-01-01 11:04:24 得分 12
内存映射,可以直接读取大文件!Top
2 楼cindytsai(笨笨的蔡鸟)回复于 2005-01-01 11:39:46 得分 12
看看:
http://www.china-askpro.com/msg48/qa98.shtml
http://www.ccw.com.cn/htm/app/aprog/01_4_5_3.aspTop
3 楼jidengda(爪哇狂)回复于 2005-01-01 11:48:11 得分 11
用 RichTextBox 这个控件,从部件中添加
读文件时,将文件打后,用这个控件的 LoadFile 这个方法 接上文件路径,这可以写入这个控件中
这个控件与TextBox相似,但功能要强大的多Top
4 楼chenqiu1024(FutureBoy)回复于 2005-01-02 22:08:40 得分 0
我看了那篇关于内存映射的文章,可是上面好像只涉及到了在映射对象中进行读写,没提到再将内存中内容写到磁盘文件中去应该怎么做.Top
5 楼qiqi5521()回复于 2005-01-03 09:53:03 得分 24
用一个字节数组作缓冲器已经足够快了,不是缓冲器越大性能就越好,要找一个合适的值,太大或太小都会导致性能下降。一般来说40960个字节比较合适。Top
6 楼chenqiu1024(FutureBoy)回复于 2005-01-07 13:14:28 得分 0
那么比如说用一般的文件读写的方法复制一个文件,有没有可能达到操作系统复制一个文件的速度?Top
7 楼chenqiu1024(FutureBoy)回复于 2005-01-07 22:09:45 得分 0
怎么?没人知道吗?Top
8 楼chenqiu1024(FutureBoy)回复于 2005-01-15 16:26:23 得分 0
加分了加分了!Top
9 楼qiqi5521()回复于 2005-01-15 17:25:37 得分 0
///那么比如说用一般的文件读写的方法复制一个文件,有没有可能达到操作系统复制一个文件的速度?
完全可以.
等会我给你个例子.Top
10 楼qiqi5521()回复于 2005-01-15 17:31:58 得分 0
http://lqweb.crcoo.com/mycode/FileReadBlock.rar
超过系统的复制速度
Top
11 楼homezj(小吉)回复于 2005-01-15 20:00:06 得分 12
应该说文件读写相对CPU运算而言是一种低速操作,各种语言的执行性能差异表现不出来,所以只要代码得当,各种复制方法的速度几乎没有区别。VB写的复制代码,在文件比较大时,完全可达到操作系统复制文件的速度。(小文件,受缓存影响,速度不确定性较大)Top
12 楼qiqi5521()回复于 2005-01-15 20:27:08 得分 0
对,楼上说的有道理。读写文件主要开销就是文件I/O,代码执行的开销极小。只要缓冲区大小合适,甚至在IDE中伪代码运行都可以达到系统速度。
刚才给出的那个代码有点问题,主要是因为用到了一个第三方控件,脱离了我的电脑可能运行不出来。
重新写了一下:
http://lqweb.crcoo.com/mycode/FileReadBlock2.rarTop
13 楼chenqiu1024(FutureBoy)回复于 2005-01-17 19:19:35 得分 0
谢谢大家!
看来加分了就是不一样啊!Top




