关于多线程复制本机文件的有关问题
关于多线程复制本机文件的问题?
我认为多线程复制本机文件无法提高速度,反而会影响效率。在网上也找到了一些做过实验的人发的"多线程为什么比单线程慢?"的帖子。
但是今天我又看到了一些文章,说RoboCopy多线程复制速度快,文章作者还说把线程数提高到120个,复制飞快。
我就搞不清楚到底是怎么回事了,请明白的高手说说:D
------解决方案--------------------
一般来说,多线程会导致慢。
复制的瓶颈是在磁盘IO,只要磁盘IO不停地在忙就行了。单线程可能会有IO空闲的时候,不过也很短,几乎可以忽略。
磁头寻道的时间是机械动作,耗时很多。操作系统有提前读,延后写的功能。比如同时读N个文件的内容时,磁头仍然会跳来跳去。当然单个文件未能存放在连续扇区时也会跳,但总体来说还是比较少。
------解决方案--------------------
文件映射,然后所有线程共享此句柄,应该会提高速度吧
------解决方案--------------------
复制多个文件与一个大文件效果也不相同。
------解决方案--------------------
个人觉得 单线程也不慢!!毕竟I/O的读写速度就那么大。。你开在多的线程也无法提升I/O读写速度!!
我认为多线程复制本机文件无法提高速度,反而会影响效率。在网上也找到了一些做过实验的人发的"多线程为什么比单线程慢?"的帖子。
但是今天我又看到了一些文章,说RoboCopy多线程复制速度快,文章作者还说把线程数提高到120个,复制飞快。
我就搞不清楚到底是怎么回事了,请明白的高手说说:D
------解决方案--------------------
一般来说,多线程会导致慢。
复制的瓶颈是在磁盘IO,只要磁盘IO不停地在忙就行了。单线程可能会有IO空闲的时候,不过也很短,几乎可以忽略。
磁头寻道的时间是机械动作,耗时很多。操作系统有提前读,延后写的功能。比如同时读N个文件的内容时,磁头仍然会跳来跳去。当然单个文件未能存放在连续扇区时也会跳,但总体来说还是比较少。
------解决方案--------------------
文件映射,然后所有线程共享此句柄,应该会提高速度吧
------解决方案--------------------
复制多个文件与一个大文件效果也不相同。
------解决方案--------------------
个人觉得 单线程也不慢!!毕竟I/O的读写速度就那么大。。你开在多的线程也无法提升I/O读写速度!!