0

假设我们有下一种情况:两台计算机通过网络连接,目录(平面)充满了需要通过网络移动的小(甚至不同大小)文件。什么更快:1)直接通过网络移动目录或2)压缩(或通过任何其他算法压缩),移动压缩文件,然后解压缩?

根据我的经验,它似乎是第二个,但我怎么能看到它是正确的?

我知道这不是那么简单 - 是与否,有带宽、压缩算法、文件大小和平均压缩比等播放器,但我只是想知道可能有一些我不知道的计算机科学吗?

4

2 回答 2

1

你没有说你正在使用什么样的系统。最好的方法是两者都做。通过网络发送压缩档案,然后在另一端解压缩,而无需将整个压缩档案存储在任何一端。在 Unix 系统上,这通常使用 tar 完成,它调用 gzip 进行压缩。您可以直接将 tar 压缩到管道中,然后在另一端解压缩。您还可以使用 rsync,它也可以在链接上进行压缩,但更复杂,可以避免发送已经在目的地的数据。

于 2012-11-15T00:18:03.990 回答
0

我认为更好的方法是将多个文件压缩到单个存档。

例如,现代 3d 游戏 - 大量游戏资源文件被压缩到更大的档案中,并在游戏运行时直接解压缩到内存中。这显着减少了游戏加载。

优点:

1)无需多次重新读取目录索引,目录索引只读取一次

2) 无需制作多个 fopen

3)数据压缩-使用现代处理器(不超过10年:))从硬盘读取比解压过程慢得多(我不知道SSD磁盘如何)。

4)使用硬盘时,读取单个(甚至是碎片)大文件比磁盘不同位置的许多小文件要快得多。当读取多个文件时,读取速度会降低,因为硬盘需要定位其磁头。

5) 例如使用 FTP 传输多个文件时,我们需要为每个文件创建 STOR 命令,而传输档案时我们只需要一个 STOR 命令。

于 2012-11-14T15:12:39.103 回答