复制之前压缩文件会更快吗?

复制之前压缩文件会更快吗?

我有大约 80 GB 的数据需要复制到外部硬盘上。先压缩所有文件然后再复制会更快吗?还是压缩和解压缩所需的时间会比节省的复制时间更长?

我要重新安装 Windows,基本上包括文档、图片、视频等。还有一个 Outlook .pst 备份文件。一共有 28,284 个文件。

另外,在我开始之前我应该​​注意什么,以便可以加快这个过程?

答案1

我假设您的外部驱动器是通过 USB、eSATA、Firewire 或类似设备连接的。在任何一种情况下,驱动器在主机中都将显示为块设备,并且主机将与硬盘“对话”,就像它是内部硬盘一样。这就是拥有“USB 大容量存储”设备类的全部意义所在。

这也意味着数据必须以精确的方式推送到网络上,以便它们在硬盘上显示。没有一种方案可以在主机上压缩数据,发送压缩数据通过 USB 连接传输,然后在将现在的原始未压缩数据存储到物理介质之前透明地解压缩。因此,您要么事先在源磁盘上压缩数据,要么通过一些方法(例如,在中间放置 NAS 并使用压缩网络协议)。

除此之外,除非您拥有非常特殊的、可很好地压缩的数据,否则您很可能会得到非常差的压缩率。如果 80 GB 中的大部分内容是视频、图片等,您甚至可能会得到负压缩率,因为这些内容已经使用非常专业的算法进行了高度压缩。

无论如何,获得任何显著的压缩率都需要重的大量的 CPU 时间。您可以通过一个简单的实验粗略估计一下这会花费多少时间:只需尝试使用 7zip 在最高设置下压缩任何 1 GB 文件并测量时间。然后测量解压缩结果。

大多数压缩算法都针对解压速度进行了优化,因为解压通常更频繁。然而,性能损失还是会很明显,甚至非常大,而且每次访问压缩数据时,您都要付出代价。

或者压缩和解压缩所花的时间是否比它节省的复制时间还要长?

另外,在我开始之前我应该​​注意什么,以便可以加快这个过程?

如果您想要完成的只是将数据从源驱动器传输到外部驱动器,那么当您得到这里的答案时,复制很可能已经完成。:o) 尤其是因为 80 GB 不再是那么大的问题;假设大约 10 MB/s,您将等待不到三个小时。压缩 80 GB 将需要很多更长。


一些东西值得考虑的是中断转会。必须在 95% 时重新启动 80 GB 的传输,并且必须从头开始……至少可以说很烦人。在这种情况下,规范工具是rsync,它可以为您节省大量时间,远远超过压缩可能为您节省的时间。代价是投资于如何使用它,但您不会在之后读取数据时受到性能损失,这是一个很大的优点。

TL;DR:从你的问题中我了解到,rsync(或类似情况)是可行的方法。除非在非常特殊的情况下,否则压缩将浪费大量时间。

答案2

是也不是。这实际上取决于你压缩的内容以及压缩方法。如果要保持压缩状态,80GB 的数据可能值得压缩。如果你想快速访问这些数据,那么就不行,压缩只会阻碍这种能力。实际上,压缩与其说是软件,不如说是硬件,因为它取决于你正在压缩的服务器或计算机的性能。

实际上,最终您只需复制原始数据而不进行压缩即可节省时间,而这并不是压缩的真正目的。

答案3

这完全取决于您备份的数据类型和备份的设备。我有大量高度可压缩的数据,我定期将它们备份到 USB 2 驱动器。压缩数据可以大大加快传输速度,因为 USB 2 比压缩数据所需的时间慢得多,而且节省了大量时间。

相反,如果您拥有快速的 USB3 驱动器或压缩数据,那么您的优势就会减小。

您使用的压缩类型以及 CPU 也需要考虑在内。Zip 和类似程序相对较轻,因此压缩速度很快,但某些压缩算法对 CPU 的占用较大。

我是一个 Linux 用户,所以我没有用过它,但你可以通过使用来获得两全其美的效果(即易于访问的文档,更快的写入时间)NTFS 压缩在您的文件系统上。

答案4

答案是:不会。只有当您只将一个压缩文件以压缩格式保留在外部文件上时,速度才会更快。但是如果您在同一硬盘上解压文件,速度就会很慢。顺便问一下,您有哪些文件,有多少文件?

相关内容