Ada banyak algoritma kompresi di sekitar, dan bzip2
merupakan salah satu yang lebih lambat. Plain gzip
cenderung lebih cepat secara signifikan, biasanya kompresi tidak jauh lebih buruk. Ketika kecepatan adalah yang paling penting, lzop
adalah favorit saya. Kompresi yang buruk, tapi oh begitu cepat.
Saya memutuskan untuk bersenang-senang dan membandingkan beberapa algoritma, termasuk implementasi paralel mereka. File input adalah output dari pg_dumpall
perintah di workstation saya, file SQL 1913 MB. Perangkat kerasnya adalah quad-core i5 yang lebih lama. Waktu adalah waktu dinding-jam hanya kompresi. Implementasi paralel diatur untuk menggunakan semua 4 core. Tabel diurutkan berdasarkan kecepatan kompresi.
Algorithm Compressed size Compression Decompression
lzop 398MB 20.8% 4.2s 455.6MB/s 3.1s 617.3MB/s
lz4 416MB 21.7% 4.5s 424.2MB/s 1.6s 1181.3MB/s
brotli (q0) 307MB 16.1% 7.3s 262.1MB/s 4.9s 390.5MB/s
brotli (q1) 234MB 12.2% 8.7s 220.0MB/s 4.9s 390.5MB/s
zstd 266MB 13.9% 11.9s 161.1MB/s 3.5s 539.5MB/s
pigz (x4) 232MB 12.1% 13.1s 146.1MB/s 4.2s 455.6MB/s
gzip 232MB 12.1% 39.1s 48.9MB/s 9.2s 208.0MB/s
lbzip2 (x4) 188MB 9.9% 42.0s 45.6MB/s 13.2s 144.9MB/s
pbzip2 (x4) 189MB 9.9% 117.5s 16.3MB/s 20.1s 95.2MB/s
bzip2 189MB 9.9% 273.4s 7.0MB/s 42.8s 44.7MB/s
pixz (x4) 132MB 6.9% 456.3s 4.2MB/s 7.9s 242.2MB/s
xz 132MB 6.9% 1027.8s 1.9MB/s 17.3s 110.6MB/s
brotli (q11) 141MB 7.4% 4979.2s 0.4MB/s 3.6s 531.6MB/s
Jika 16 core server Anda cukup siaga sehingga semua dapat digunakan untuk kompresi, pbzip2
mungkin akan memberi Anda kecepatan yang sangat signifikan. Tetapi Anda masih membutuhkan kecepatan lebih dan Anda dapat mentolerir ~ 20% file yang lebih besar, gzip
mungkin merupakan taruhan terbaik Anda.
Pembaruan: Saya menambahkan brotli
(lihat jawaban TOOGAM) ke tabel. brotli
s pengaturan kualitas kompresi memiliki dampak yang sangat besar pada rasio kompresi dan kecepatan, jadi saya menambahkan tiga pengaturan ( q0
, q1
, dan q11
). Standarnya adalah q11
, tetapi sangat lambat, dan masih lebih buruk daripada xz
. q1
terlihat sangat bagus; rasio kompresi yang sama seperti gzip
, tetapi 4-5 kali lebih cepat!
Perbarui: Ditambahkan lbzip2
(lihat komentar gmathts) dan zstd
(komentar Johnny) ke tabel, dan urutkan berdasarkan kecepatan kompresi. lbzip2
mengembalikan bzip2
keluarga dalam menjalankan dengan mengompres tiga kali lebih cepat pbzip2
dengan rasio kompresi yang hebat! zstd
juga terlihat masuk akal tetapi dikalahkan oleh brotli (q1)
rasio dan kecepatan.
Kesimpulan asli saya bahwa polos gzip
adalah taruhan terbaik mulai terlihat hampir konyol. Meskipun untuk mana-mana, itu masih tidak dapat dikalahkan;)