linux

pigz 多线程压缩神器 - pigz multi-thread gzip

pigz 是基于gzip的多线程压缩利器,官方 是这样介绍的:A parallel implementation of gzip for modern multi-processor, multi-core machines. 翻译成中文是:一个针对现代多处理器、多核机器的 gzip 的并行实现。首先,它是gzip的并行实现,其次是针对现代多处理器、多核机器。

不废话了,我们先来测试下压缩速度:

1、使用 gzip 压缩 android sdk(4.5G大): time tar -zcf ./sdk.tar.gz ../sdk  输出如下:

real	3m11.418s
user	3m8.948s
sys	0m5.630s

2、使用 pigz 压缩:time tar -cf - ../sdk | pigz -p 8 > ./sdk.tgz  输出如下:

real	0m37.359s
user	4m36.383s
sys	0m5.730s

可见,pigz的速度是gzip的 5.3 倍,现在,我们看看解压速度。

3、使用gzip解压:time tar xf sdk.tar.gz  输出如下:

real	0m41.602s
user	0m29.835s
sys	0m6.858s

4、使用pigz解压:time pigz -p 8 -k -d sdk.tgz  输出如下:

real	0m15.635s
user	0m20.030s
sys	0m3.677s

由于pigz解压后是tar,所以还需要解压tar文档:time tar -xf sdk.tar  输出如下:

real	0m7.832s
user	0m0.299s
sys	0m3.927s

那么使用pigz全部耗时 23.4 秒,而gzip 是41秒。差不多2倍。这里sdk文件夹4.5G,压缩后1.9G,两者压缩后大小没啥差别。当压缩20G的文件时,发现pigz速度下降,接着我尝试压缩到内存里面,速度提升明显,可见,到最后影响速度的却是磁盘,我14年买的三星ssd看来不行了。

full-stack-trip

Share
Published by
full-stack-trip

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago