Ale*_*aca 14
很好的问题。
无缓冲 I/O 是从源位置到目标位置的简单文件复制。缓冲 I/O 通过将文件复制到文件系统缓存(虚拟内存的一个区域)来增强简单复制,以优化未来对同一文件的读取(和写入)。第一次访问文件时,缓冲 I/O 会导致性能损失,因为它必须将文件复制到内存中;但是,由于内存访问比磁盘访问快,因此后续文件访问应该更快。操作系统负责将文件写入同步回磁盘,读取可以直接从内存中提取。
使用说明提到了与缓冲 I/O 相比的大文件,因为:
所以有一个权衡,但哪种适合你取决于你的具体情况。如果您正在压缩一堆文件并将 zip 传输到备份目标,则无缓冲是可行的方法。复制一堆刚刚改变的文件?缓冲应该更快。
最后,请注意文件大小并不是决定缓冲和非缓冲的唯一因素。与任何缓存一样,文件系统缓存比其背后的源更快但更小。它需要一个缓存替换策略来控制何时驱逐项目以为新项目腾出空间。当经常访问的项目被驱逐时,它就失去了它的好处。例如,如果您在当天将用户主目录同步到一个单独的位置(即,当用户正在使用文件时),缓冲 I/O 将受益于已经驻留在缓存中的文件,但可能会暂时用陈旧文件污染缓存; 另一方面,无缓冲将放弃已缓存文件的任何好处。在这种情况下没有明显的赢家。
注意:这也适用于 xcopy /J
有关更多信息,请参阅 Microsoft 的Ask The Performance Team 博客。
小智 3
我尝试了以下方法:
当您从快速设备(通过千兆以太网的 NAS)复制到另一个快速设备(USB3 磁盘)时
我建议使用这个选项。