首頁 > 軟體

bzip、pbzip2壓縮工具比較

2020-06-16 16:57:51

Linux版本:Debian8.5

pbzip2安裝:apt-get install pbzip2

pbzip2詳情請見:檔案壓縮工具pbzip2安裝及使用介紹  http://www.linuxidc.com/Linux/2018-01/150144.htm

bzip2(單執行緒壓縮工具)

# 壓縮單個檔案測試
# 單個檔案大小
root@wing:/data # du -h 2016.sql
3.4G    2016.sql
# tar bzip2 壓縮命令
time tar -jcf 2016.sql.bz2 2016.sql
# 單個檔案壓縮時間
real    10m7.996s
user    10m4.632s
sys    0m13.276s
# 壓縮後檔案大小
root@wing:/data # du -sh 2016.sql.bz2
220M    2016.sql.bz2

# 壓縮目錄測試
# 目錄檔案大小
root@wing:/data # du -sh 20161122/
6.9G    20161122/
# tar bzip 只能使用一個核進行壓縮
time tar -jcvf 20161122_bzip.bz2 20161122/*
# 目錄壓縮時間
real    24m30.013s
user    22m51.936s
sys    0m23.872s
# 壓縮後檔案大小
root@wing:/data # du -h 20161122.bz2
356M    20161122.bz2

pbzip2(多執行緒壓縮工具)

# 壓縮單個檔案測試
# 單個檔案大小
root@wing:/data # du -h 2016.sql
3.4G    2016.sql
# pbzip2壓縮命令
time pbzip2 -p3 -k 2016.sql 
# 單個檔案壓縮時間
real    3m22.909s
user    9m55.092s
sys    0m16.284s
# 壓縮後檔案大小
root@wing:/data # du -sh 2016.pbzip.bz2
221M    2016.pbzip.bz2

# 壓縮目錄測試
# 目錄檔案大小
root@wing:/data # du -sh 20161122/
6.9G    20161122/
# tar bzip pbzip 使用3個核進行壓縮
time tar -c 20161122 | pbzip2 -p3 -c > 20161122.tar.bz2
# 目錄壓縮時間
real    7m31.688s
user    22m5.736s
sys    0m42.520s
# 壓縮後檔案大小
root@wing:/data # du -h 20161122.tar.bz2
358M    20161122.tar.bz2

總結:

 bzippbzip(3個執行緒)
原檔案大小 3.4G 3.4G
檔案壓縮時間( real) 10m7.996s 3m22.909s
檔案壓縮大小 220M 221M
原目錄大小 6.9G 6.9G
目錄壓縮時間(real) 24m30.013s 7m31.688s
目錄壓縮大小 356M 358M

注意:壓縮時間使用real計算,而不使用user+sys計算的原因是,多執行緒下user的時間是每個執行緒時間之和,與我們可以感知到的時間偏差較大,所以選擇real,該伺服器上都是初始化的job,所以real更接近使用者感知的時間。

從上面表格可以得出,pbzip2開啟3個執行緒壓縮的前提下,無論是壓縮單個檔案還是壓縮目錄,時間上比單執行緒bzip2壓縮快了接近3倍,而壓縮比也基本相同。

本文永久更新連結地址http://www.linuxidc.com/Linux/2018-01/150145.htm


IT145.com E-mail:sddin#qq.com