压缩解压工具gzip、pigz、gtz大比较
本文最后更新于 554 天前,如有失效请评论区留言。

转载自CSDN “压缩解压工具gzip、pigz、gtz大比较”

刘永鑫Adam于 2018-08-25 15:51:27 发布

软件测试于Ubuntu 16.04LTS

ubuntu环境下默认~/bin为个人环境变量目录

比较Linux系统自带gzip工具、多线gz压缩工具pigz、以及最新适合fastq压缩又快又小的软件GTX(自称只有传统gzip的1/6体积,实测单线程速度快了3倍,体积减少为gzip的2/3大小)

软件下载和安装

gzip系统默认,无须安装

pigz多线程压缩工具,可通过Ubuntu系统自带的新立德工具箱一键安装

sudo apt-get install pigz

GTX压缩工具,由于是新算法,压缩格式不是gz,而是gtz格式

# 下载软件
wget http://gtz.io/gtz_public_0.2.2k_ubuntu_release.tgz
# 解压
tar zxvf gtz_public_0.2.2k_ubuntu_release.tgz
# 进入程序目录
cd gtz_public_0.2.2k_ubuntu_release/
# 显示帮助
./gtz -h
# 添加环境变量,一定要软链,否则程序无法运行
ln -s `pwd`/gtz ~/bin/

软件测试

使用BGISeq500产生的PE100测序文件的一端作为测试。7.8GB,比较典型的测序样品大小。

压缩

不支持多线程的gzip

time gzip -c test.fq > test.fq.gz

多线程压缩pigz

# 注意-p一定要写下前面,后面无效
time pigz -k -p 32 test.fq
time pigz -k -p 8 test.fq
time pigz -k -p 1 test.fq
time pigz -k test.fq

gtz

time gtz test.fq
# 时间31s,压缩率24.3%(1.91/7.83G),默认输出文件为otu.gtz,不删除输入文件,CPU使用峰值为30线程
# 指定单线程数压缩至指定文件
time gtz test.fq -p 1 -o test.fq.gtz
# 8m,压缩率不变
time gtz test.fq -p 8 -o test.fq.gtz
# 1m21s,压缩率不变
time gtz test.fq -p 32 -o test.fq.gtz
# 32s,压缩率不变

三款软件不同线程下表现

线程gzippigzgtz
116m53s23m46s8m
83m12s1m21s
3247s32s
9650s31s
Rate36.5%36.5%24.3%

-代表不支持多线程。线程不要给太多,超过30几乎没有意义,反而速度下降,还浪费大量计算资源。

解压大比拼

gunzip

time gunzip test.fq.gz

unpigz

time unpigz test.fq.gz
time unpigz -p 32 test.fq.gz
time unpigz -p 8 test.fq.gz
time unpigz -p 1 test.fq.gz

gtz

gtz -d test.fq.gtz
gtz -d test.fq.gtz -p 32
gtz -d test.fq.gtz -p 8
gtz -d test.fq.gtz -p 1

解压时间大比拼

线程gunzipunpigzgtz
11m32s55s12m22s
854s1m51s
3255s53s
9650s39s

点评

以标准的gzip为对照,点评另两另个并行软件pigz和gtz的优缺点;

在压缩上,单线程,pigz反而更慢50%,而gtz速度可以提高一倍;在多线程时,速度在前30线程内可线性提高,优势明显。gtz在速度和压缩率上更胜一筹,30线程时时间和压缩比仍比pigz超50%,但绝对没有宣传的压缩率提高7倍这么牛

在解压上,unpigz也不支持多线程,但比gunzip略快。gtz由于压缩率略高,解压算法较复杂,在32线程时才比单线程解压的unpigz更快,这对计算需求大压力也比较大。

此外,gtz格式目前还是非主流,并不能被其它软件直接使用,因此只适合存储备份长期不用的文件,还是值得使用的。但常用软件目前不能直接使用此格式。

快速压缩解压还是要使用gz格式,主流软件支持好,解压速度快,占用资源少。

Reference

gzip中文帮助 http://man.linuxde.net/gzip

pigz官网 http://zlib.net/pigz/

GTX.Zip–基因领域唯一100%安全无误的企业级压缩大咖! https://mp.weixin.qq.com/s/gthwGjkk_jpylo2NLS469A

gtz源代码 https://github.com/genetalks/gtz

版权声明:除特殊说明,博客文章均为Vensin原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。 如有需要,请至学习地图系统学习本博客的教程。 | 博客订阅:RSS | 广告招租:留言板 | 博客 |
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
# # #