我有一个大约 7 MB 的文件,可以在几秒钟内保存到我的本地共享中。但是,将该文件保存到网络位置需要几分钟。我想知道我能做些什么来加快这个速度。这是我目前的选择:
- 将数据保存到本地计算机上的临时文件中,然后将临时文件复制到网络路径。我可能会这样做,因为这是最简单且最划算的。
- 使用
SetFilePointerEx()
和SetEndOfFile()
。根据这个问题的答案,我认为这可能很有用:在 Windows 上创建大文件 - 缓冲区写入。我可以自己缓存写入数据并在缓冲区已满时刷新,但这与操作系统已经完成的缓存不是多余的吗?
#1 似乎是最好的选择,但我想知道是否有人对加快保存到网络路径的更好方法有任何建议?
编辑:网络在千兆局域网上,所以速度应该不是问题。将文件复制到网络路径大约需要 1 秒。我只是注意到我们在较小的数据块上调用 WriteFile() ,然后我们可能应该这样做,因此优化更高级别的代码以编写更大的块可能会有所帮助,但速度差异仍然如此显着,这仍然是一个值得提出的问题.