您可以通过多线程使文件复制速度更快吗?
编辑 :澄清一下,假设您正在实现 CopyFile(src, tgt)。在某些情况下,您可以使用多个线程来使其运行得更快,这似乎是合乎逻辑的。
编辑 还有一些想法:
当然,这取决于相关的硬件/存储。
例如,如果您从一个磁盘复制到另一个磁盘,很明显您可以使用两个线程同时读/写,从而节省了两个线程中最快的(通常是读取)的性能成本。但是你真的不需要多个线程来并行读/写,只需要异步IO。
但是,如果 async-IO 在从不同磁盘读取/写入时确实可以加快速度(高达 2 倍),为什么这不是 CopyFile 的默认实现? (或者是吗?)
请您参考如下方法:
如果你不小心,你可以让它变慢。磁盘擅长序列化访问,如果你有多个线程,磁盘磁头会到处都是。现在,如果您正在处理高性能 SAN,那么您的性能可能会有所提高,而 SAN 将处理优化磁盘访问。


