Ada banyak algoritma kompresi di sekitar, dan bzip2merupakan salah satu yang lebih lambat. Plain gzipcenderung lebih cepat secara signifikan, biasanya kompresi tidak jauh lebih buruk. Ketika kecepatan adalah yang paling penting, lzopadalah 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_dumpallperintah 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, pbzip2mungkin akan memberi Anda kecepatan yang sangat signifikan. Tetapi Anda masih membutuhkan kecepatan lebih dan Anda dapat mentolerir ~ 20% file yang lebih besar, gzipmungkin merupakan taruhan terbaik Anda.
Pembaruan: Saya menambahkan brotli(lihat jawaban TOOGAM) ke tabel. brotlis 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. q1terlihat 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. lbzip2mengembalikan bzip2keluarga dalam menjalankan dengan mengompres tiga kali lebih cepat pbzip2dengan rasio kompresi yang hebat! zstdjuga terlihat masuk akal tetapi dikalahkan oleh brotli (q1)rasio dan kecepatan.
Kesimpulan asli saya bahwa polos gzipadalah taruhan terbaik mulai terlihat hampir konyol. Meskipun untuk mana-mana, itu masih tidak dapat dikalahkan;)