Performance 什么是最快的bzip2解压器?

Performance 什么是最快的bzip2解压器?,performance,compression,bzip2,Performance,Compression,Bzip2,bzip2的哪个实现具有最大的解压缩速度 有一种说法 通过 曼努埃尔·诺沃亚三世(mjn3@codepoet.org). 更有效地阅读哈夫曼 代码,一个简化的read_bunzip() 函数和其他各种调整。 在(有限)测试中,约20% 比x86上的bzcat快,约10% 手臂动作更快。请注意,大约有2/3的 时间花费在read_unzip()中 翻转布伦斯轮式拖拉机 转型这段时间大部分时间都很紧张 缓存未命中导致的延迟 许多缓存未命中都有可能通过某些技术进行优化,因此可以实现更快的实现 这个(s

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

有一种说法

通过 曼努埃尔·诺沃亚三世(mjn3@codepoet.org). 更有效地阅读哈夫曼 代码,一个简化的read_bunzip() 函数和其他各种调整。 在(有限)测试中,约20% 比x86上的bzcat快,约10% 手臂动作更快。请注意,大约有2/3的 时间花费在read_unzip()中 翻转布伦斯轮式拖拉机 转型这段时间大部分时间都很紧张 缓存未命中导致的延迟

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

这个(seek-bzip2)还有一个有趣的特性,就是在输入文件中轻松查找

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

谢谢。

这里有一些比较。考虑并行版本

也有一点

链接来自英特尔cilk并行版本的bzip2

此外,Intel的ipp驱动的bzip2性能非常好,并且还尝试在ipp中(具有负面影响)使用openmp(Intel KMP 5)并行化bzip2(无并行块解压缩)的某些内部。 将其限制为一个或两个线程时,2.4 core2(ipp“v8”代码)上20 MByte/s的解压缩流为实


希望这能有所帮助。

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

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


举例说明:我目前正在解压缩一个17Gb的大文件
bzip2
正在以10Mb/秒的速度写入解压缩文件;PBZIP2现在以160Mb/秒的速度写入。我是这样运行的:

pbzip2 -v -d -k -m10000 file.bz2
i、 e.
-v
详细
-d
解压缩
-k
保留原始文件
-m1000
使用10Gb的RAM

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

是一个很好的选择

sudo apt install lbzip2

lbzip2 -d <archive>
sudo apt安装lbzip2
lbzip2-d

bzip2 0.1是SpecCPU2000的一部分,因此编译器编写人员必须仔细研究它。格雷格,你能发布
time pbzip2
/usr/bin/time pbzip2
的输出以查看>100%的cpu使用率吗?pbzip2可以并行解压任何bz2文件还是只解压用pbzip2压缩的文件?我很确定原始文件不是用pbzip2压缩的。据我所知,pbzip2应该与任何bz2文件兼容(请确认/反驳)。解压耗时约1小时,不幸的是,我现在无法运行它——但我确实看到(使用
htop
)所有20个CPU都使用了约100%。很抱歉,您的答复不令人满意。:-)Greg,为了得到更好的答案(您已经展示了20个内核/线程是可能的),您可以使用更小的测试文件(在更小的机器上)进行类似的测试。我希望bzip2压缩文件不会进行并行解压缩,因为pbzip2格式不同:“PBZIP2数据格式。。使用pbzip2压缩的文件被分解成多个片段,每个片段都被压缩。。使用pbzip2压缩的文件在使用pbzip2解压缩时也将获得相当大的加速。使用bzip2压缩的文件不会看到加速“哈!非常有趣。我一定会看一看。谢谢