什么是最快的bzip2解压缩程序?

时间:2010-09-13 13:01:28

标签: performance compression bzip2

bzip2的哪个实现具有最大的解压速度?

http://bitbucket.org/james_taylor/seek-bzip2/src/tip/micro-bunzip.c声称

  

尺寸和速度优化   Manuel Novoa III(mjn3@codepoet.org)。   更有效地阅读霍夫曼   代码,精简的read_bunzip()   功能,以及其他各种调整。   在(有限)测试中,大约20%   比x86上的bzcat更快,大约10%   手臂更快。请注意,大约2/3   时间花在read_unzip()上   扭转Burrows-Wheeler   转型。大部分时间都是   缓存未命中造成的延迟。

许多缓存未命中都有可能通过某些技术进行优化,因此可以实现更快的实现。

这个(seek-bzip2)也有一个很容易在输入文件中搜索的有趣功能。

我的程序将消耗bzip2的输出,并且(理论上)可以在文件的不同部分并行执行此操作。因此,也考虑并行bzip2实现。

感谢。

3 个答案:

答案 0 :(得分:3)

有一点http://lists.debian.org/debian-mentors/2009/02/msg00135.html的比较。考虑并行版本。

还有一点http://realworldtech.com/forums/index.cfm?action=detail&id=98883&threadid=98430&roomid=2

链接来自intel cilk-parallel version of bzip2 http://software.intel.com/en-us/articles/a-parallel-bzip2/

此外,英特尔的ipp供电的bzip2非常好,并且还在IPP(具有负面影响)中使用openmp(英特尔KMP 5)并行化bzip2的内部(没有并行块解压缩)。 当将其限制为一个或两个线程时,在2.4核心2上可以实现20 MByte / s的解压缩流(ipp“v8”代码)

希望这有帮助。

答案 1 :(得分:0)

如果您可以访问多处理器计算机(在Amazon EC2或Digital Ocean上轻松旋转多处理器虚拟机)/具有大量RAM的计算机,您一定要查看PBZIP2

PBZIP2是bzip2块排序文件压缩器的并行实现,它使用pthreads并在SMP机器上实现接近线性的加速

为了说明:我目前正在解压缩大型17Gb文件。 bzip2正在以10Mb /秒的速率写入解压缩文件; PBZIP2现在以160Mb /秒的速度写入。我这样经营它:

pbzip2 -v -d -k -m10000 file.bz2

即。 -v详细-d解压缩-k保留原始文件-m1000使用10Gb的RAM

这是在Digital Ocean上的64Gb RAM,20 CPU机器上运行,每小时花费0.952美元。 : - )

答案 2 :(得分:0)

lbzip2 是一个不错的选择。

sudo apt install lbzip2

lbzip2 -d <archive>