【问题标题】:Can reading zipped files be faster than uncompressed?读取压缩文件可以比未压缩文件更快吗?
【发布时间】:2013-12-09 11:59:14
【问题描述】:

有没有可能用一些简单的算法打包一个大文件使我能够比从未压缩的文件中更快地读取数据(由于硬盘驱动器比解压缩慢)? 我需要什么样的压缩率?任何快速压缩算法都可以做到这一点吗?

【问题讨论】:

    标签: compression


    【解决方案1】:

    是的。当从典型压缩因子为 4 的硬盘驱动器读取数据时,zipgzipzlib 使用的 deflate 压缩通常就是这种情况。

    从 SSD 中,您可能需要进行更快的解压缩。你可以试试lz4

    您的里程可能会有所不同。

    【讨论】:

    • 非常有趣的话题。我用 Python 读取纯文本 (80MB)、zip (27MB)、gz (27MB) 和 bz2 格式 (17MB) 的文件并得到以下时间:.txt 需要 0.043 秒,.zip 需要 0.30 秒,.gz 需要0.42 秒,.bz 需要 2.42 秒。 HDD 和 SSD 的时间大致相同。当我将文件大小翻倍时,时间大约是原来的两倍,所以它不会受到其他东西的瓶颈。令我惊讶的是,最大的纯文本文件是迄今为止阅读速度最快的文件。这似乎受到浮点解压缩时间的限制,而不是传输速度。
    • Python 可能不是进行此测试的最佳方式。 (顺便说一句,我不知道“浮点解压”之类的东西。)
    • 好点。 (对于内存中的解压缩,我只是说它是 CPU 密集型的。)
    • @NorbertS 非常感谢您的这项工作。我正要进行这项分析,而您为我省去了麻烦。
    【解决方案2】:

    你也可以试试Density,它的命令行客户端“sharc”以here为基准。

    【讨论】:

      猜你喜欢
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多