哪个更快,一次复制所有内容还是一次复制一个内容?

哪个更快,一次复制所有内容还是一次复制一个内容?

我正在通过 USB 2.0 将一大堆(20 多个)大文件(1GB 以上)传输到我的外部闪存驱动器。是一次性传输所有文件(一次传输一个文件,但不等待前一个文件传输完成)以便同时进行多个传输,还是先传输一个文件,等待它传输完成,然后再传输下一个文件,这样速度更快?这些文件来自不同的位置,所以我无法进行一次大文件传输。

这种方法是否还有其他值得考虑的优势?

答案1

如果它们都来自不同的物理磁盘,但被写入固态硬盘(闪存、SSD),那么您可以同时复制它们。

物理磁头移动(延迟)是导致旋转磁盘传输速度变慢的原因。如果您从单个 HDD 进行复制,那么您将启动单个大型传输,而不是多个小型传输。磁头在两个或多个正在复制的文件之间来回移动是导致传输速度变慢的原因。当然,如果 HDD 碎片严重,即使您复制单个文件,也会得到同样的效果。

如果是在固态硬盘之间,那就无所谓了。

如果你不想等待每次传输完成,那么可以使用复制排队应用程序,例如万亿拷贝

当然,闪存驱动器的写入速度会成为这里的瓶颈,所以无论你怎么做可能都无所谓。:)

答案2

如果目标磁盘是 SSD,请记住 SSD 是,就这里所关注的而言,太快了。 (*)

如果目标速度较慢(从写入速度不太高的闪存到 SATA3 HDD 再到磁带),你应该队列每次进行一次转移。

你的瓶颈肯定在目标磁盘上

如今在 HDD 中建议这样做,因为尽管一个磁柱上有多个磁头,但也不允许它们同时进行读写(在现实世界中,这并未显示出对性能的影响,因为我们可能会在其中一个磁头中遇到随机数据,而这在大多数情况下不允许我们在该磁头中进行读写,如果磁头没有完全居中,则可能导致磁盘损坏)。

常识(还有数学!)告诉我们,如果我们有一个非常非常大的源,但我们可以并行传输文件,那么头部搜索可能(虽然在很多情况下)比作业的序列化更快。

(*)正如 nnewton 所说,这是因为没有头部运动。但我们不应该使用这个术语吗?潜伏:延迟是磁头移动+磁盘旋转延迟+读取时间,在SSD中,这只是随机读取时间,并不像磁盘驱动器那样依赖于先前的读取位置

答案3

使用 Windows 内置的文件复制实用程序,它们都非常慢。您可能需要考虑使用其他应用程序,例如泰拉复制

答案4

最好一次只写入一个文件。

您可能会发现闪存驱动器的带宽很容易饱和。(源驱动器不太可能成为瓶颈。)虽然 USB 2.0 可以传输高达 480MB,但您的闪存驱动器可能限制在约 20MB。这意味着当您从硬盘驱动器传输几个文件时,它将达到闪存驱动器的最大写入速度,并且每个文件的写入速度都会变慢,因为它们必须共享。

此外,通过同时写入多个文件,会增加碎片,因为除非在传输开始时就完全分配文件的空间,否则文件最终会在传输过程中被分成块。

(幸运的是,由于闪存驱动器是固态的,因此不存在像将多个文件传输到硬盘时那样需要来回摆动的磁头。)

同时写入多个文件的另一个缺点是文件复制对话框仅显示单个文件的进度和剩余时间,并且几乎不可能估计总时间,因为它不是线性的(您不能简单地将它们相加)。将它们一起传输将为您提供整个传输的更准确的反馈。

如果源文件来自不同的来源(您指的是不同的硬盘驱动器?CD/DVD?网络驱动器?还是只是文件夹?),那么您可以使用专用的文件复制工具,而不是 Windows 的内置功能。一些选项包括 Microsoft TechNet 工具Robocopy,它还具有GUI 前端、RichCopy(也来自 TecNet),它是基于 Robocopy 的增强工具,以及万亿拷贝,其专门致力于使转账尽可能高效(并且有免费版本)。

相关内容