我有一个大约7 MB的文件,可以在几秒钟内保存到本地共享。但是,将该文件保存到网络位置需要分钟。我想知道我能做些什么来加快速度。以下是我目前的选择:将文件保存到网络
- 的数据保存到本地计算机上的临时文件,然后将临时文件复制到网络路径。我可能会这样做,因为这是最简单和最大的压力。
- 使用
SetFilePointerEx()
和SetEndOfFile()
。我认为这可能是有用的基础上回答这个问题:Creating big file on Windows - 缓冲区写入。我可以自己缓存写入数据,并在缓冲区满时刷新,但是这对于已经由OS完成的缓存是否是多余的?
#1似乎是最好的选择,但我想知道如果有人有更好的方法来加快保存到网络路径的任何意见?
编辑:网络位于千兆局域网上,所以速度不应该成为问题。将文件复制到网络路径大约需要1秒。我只是注意到我们在更小的数据块上调用WriteFile(),所以我们可能应该这么做,所以优化更高级的代码以编写更大的块可能会有所帮助,但速度差异仍然如此重要,以至于仍然值得提问。
如果复制文件需要一秒钟,那么您可能应该使用CopyFile或CopyFileEx函数,或者调用复制命令。 – ChrisW 2009-05-21 18:44:22