我想知道使用python2.7的多处理模块将文件从一个文件夹异步复制到另一个文件夹是否有任何好处。
diskio总是被强制连接吗?如果从一个硬盘复制到另一个硬盘,这会改变吗?这是否会根据操作系统(windows / linux)而改变?
也许可以并行读取,但不可能写入?
这一切都假设被移动/复制的fiels是不同的文件到不同的位置。
答案 0 :(得分:1)
在点击硬盘驱动器之前,I / O会进入RAM中的系统缓存。 Fro写道,您可能会发现副本很快,直到您耗尽RAM然后减速并且相同数据的多次读取速度很快。如果将同一文件复制到多个位置,则在移动到下一个文件之前,可以使用该文件的副本。
单个硬盘驱动器(或与RAID或卷管理器连接的硬盘驱动器组)的I / O大多是串行的,除了操作系统和驱动器可能会重新排序操作以读取/写入附近的轨道,然后再搜索渐行渐远。执行并行复制有一些优势,因为有更多的机会重新排序,但由于您在应用程序写入后的某个时间实际上是从系统RAM缓存写入,因此可能难以衡量其好处。
驱动器之间的移动有更大的好处。这些主要是并行的,尽管有一些争用运行驱动器的总线(例如,pcie,sata)。
如果要复制大量文件,多处理是一种合理的方法,但您可能会发现本机复制实用程序的子进程更快。