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实现。
感谢。
答案 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>