【问题标题】:How to move lot of files through network如何通过网络移动大量文件
【发布时间】:2012-11-14 14:32:26
【问题描述】:

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

根据我的经验,它似乎是第二个,但我怎么看它是对的?

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

【问题讨论】:

标签: networking compression zip


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    优点:

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

    2) 无需多次fopen

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多