一个读取速度超快的filestream-TFastFileStream

时间:2015-07-19 06:59:31
【文件属性】:

文件名称:一个读取速度超快的filestream-TFastFileStream

文件大小:4KB

文件格式:PAS

更新时间:2015-07-19 06:59:31

TFastFileStream

最近一直为自己制作的相册软件(http://www.tonixsoft.com/ultraalbum/index.php?lang=chs)打开大文件时速度慢而郁闷,我以前的做法是先用TFileStream打开一个文件,然后在其中找到其中的数据段,把其中内容复制给一个TMemoryStream,之所以要再将它复制给一个独立的TMemoryStream是因为,后续处理的一个文件型数据库组件必须接受一整个TStream,作为其存储媒介,整个过程简直慢得无法忍受。 之所以速度慢,是有两方面的原因: 1。用TFileStream打开文件,操作系统在打开文件后会为文件生成内存镜像,文件一大,那么开辟空间以及内存拷贝的工作就会变得极为缓慢。 2。将TFileStream中的一部分再复制给TMemoryStream,这个复制过程会开辟新的内存再进行复制,理所当然内存大了,复制时间也会变长。 我决心针对目前我所遇到的问题,再写一个文件读取类,目前就叫TFastFileStream吧,它必须从TStream继承而来,这样才能和其它组件方便地结合起来。 首先,要解决的是打开大文件慢的问题,对于这个,使用MapViewOfFile(),将文件直接当作内存镜像来访问就可以了,关于MapViewOfFile(),以及文件内存镜像,可以参考这篇文章:http://www.vccode.com/file_show.php?id=2409 ......


网友评论

  • 很遗憾没写存储,
  • 说实话没感觉快多少,还有别的提高的办法吗?
  • 感觉速度是要比系统自带的快些,请问下除了这样 还能提高么