我有一个大约7 MB的文件,可以在几秒钟内保存到本地共享。 但是,将该文件保存到networking位置需要几分钟的时间 。 我想知道我能做些什么来加快速度。 这是我目前的select:
将数据保存到本地计算机上的临时文件,然后将临时文件复制到networkingpath 。 我可能会这样做,因为这是最简单和最大的压力。
使用SetFilePointerEx()和SetEndOfFile() 。 我认为这可能是有用的基础上回答这个问题: 在Windows上创build大文件
缓冲区写入 。 我可以自己caching写入数据,并在缓冲区满的时候刷新,但是对于操作系统已经完成的caching而言,这不会是多余的吗?
#1似乎是最好的select,但我想知道如果有人有更好的方法来加速保存到networkingpath的任何build议?
编辑:networking是在千兆局域网,所以速度不应该是一个问题。 将文件复制到networkingpath大约需要1秒。 我只是注意到我们正在调用WriteFile()的小块数据,所以我们可能应该这样做,所以优化更高级的代码来编写更大的块可能会有所帮助,但是速度差异仍然如此重要,以至于问一个有价值的问题。
在自己的假文件系统中运行Java应用程序
需要文件中的数据库自动编号function(Windows C#)
Linux上的C ++ makefile具有多个* .cpp文件
如何在连接之前插入新行?
如何在CreateFile中打开卷的文件系统?
我想知道是否有人有更好的方法来加速保存到网络路径的任何意见?
也许你需要一个更好的网络。 ISP经常提供快速下载,但是上传缓慢。 使用FTP等协议传输7 MB需要多长时间?
你会想要读取 – 修改 – 写入操作。 您通常要写块至少4KB,可能更高的权力为2.原因是要追加一个字节,通常需要读取文件的最后一个块,追加一个字节,并写回新的块。 通过写入4KB块(仅),每个写入通常在文件末尾作为新的块结束。
缓存应该在这里帮助你,但缓存不完美。 这可能有助于专门打开文件。 如果您拒绝读取访问,操作系统可能会注意到刷新缓存对于其他应用程序来说并不重要。
copyFile可以很快,因为它可以完全相同。
你在慢速网络上运行?
编号随选项编号1一起在后台保存到网络共享
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。