假设我正在将便携式应用程序目录从 PC 复制到外部硬盘。application.exe 文件大小约为 4 MB,但大多数其他文件只有几十千字节,并且大多数这些文件的复制/移动时间比 4 MB 的大文件更长。
为什么是这样?
答案1
传输数据时,如果移动一个大文件,则只需写入一次目录条目,然后流式传输数据并或多或少连续写入。如果有许多文件,则写入目录信息,移动到文件区域并写入数据,然后返回并写入下一个文件的目录条目,然后移回数据区域并写入数据,如此反复。来回移动的开销加起来就大了。
答案2
如果您传输文件,则在源端会有一个打开+读取+关闭,在目标端会有一个打开+写入+关闭,并在目标端创建所有相关属性(ctime/atime/mtime 等)。碎片(更高的寻道时间)也会影响数据速率。例如,sata 通道的拥塞也可能是一个问题(为每个磁盘使用单独的端口,如果用完了,请购买 sata 卡)。更大的文件具有更长的连续读取或写入时间,并且传输速度更快。我相信还有更多内容。这对您有帮助吗?
答案3
这就是 Windows 的工作方式,而这正是 HDD 不擅长的部分。通常 SSD 擅长复制小文件。您可以查看 HDD 和 SSD 的基准测试,了解文件传输速度。但您必须知道还有其他事情要做,例如 Windows 首先读取文件,然后您的防病毒软件检查它们,然后将它们写入新的目标文件夹。更不用说当您剪切文件时,会添加删除过程。因此,文件越多,复制更多文件所需的“实际”时间就越多。
答案4
可以这样想,
计算机被分配了一项任务,将 10 本书(10 个文件)从 A 点运送到 B 点,如果它们是独立的,那么计算机需要先拿一本,然后将其运送到 B 点,然后再回到 A 点取下一本书,依此类推。而如果它需要拿一本重量相当于 10 本书总重量的大书,那么移动这本书需要更长的时间,但这个过程会更快,因为计算机只进行一次移动。