noo*_*der 2 linux parallel-processing bash gzip
我正在使用 PIGZ 库。https://zlib.net/pigz/
我使用此库对每个文件使用多个线程来压缩大文件,现在我也想对每个文件使用多个线程来解压缩这些文件。根据文档:
解压不能并行化,至少在没有为此目的专门准备的 deflate 流的情况下不能并行化。
但是,文档没有具体说明如何做到这一点,我发现很难找到这方面的信息。
我将如何创建 PIGZ 可用于减压的这些“专门准备的放气流”?
pigz 目前不支持并行解压,所以专门准备这样的 deflate 流是没有帮助的。
尚未实现的主要原因是,在大多数情况下,解压缩速度足够快,可以进行 I/O 绑定,而不是处理器绑定。这不是压缩的情况,它可能比解压缩慢得多,并且并行压缩可以大大加快速度。
您可以使用 zlib 和 pthread 编写自己的并行解压缩器。pigz 2.3.4 及更高版本实际上将通过使用 --independent (-i) 选项为并行解压缩特别准备的流。这使得块可以独立解压缩,并在每个块前面放置两个同步标记,以便通过扫描压缩数据快速找到它们。块的未压缩大小通过 --blocksize 或 -b 设置。您可能希望将该大小设置为大于默认值,例如 1M 而不是 128K,以减少使用 -i 的压缩影响。一些测试会告诉您使用 -i 减少了多少压缩。
(顺便说一下, pigz 不是一个库,它是一个命令行实用程序。)
| 归档时间: |
|
| 查看次数: |
1152 次 |
| 最近记录: |