Antara xz, gzip, dan bzip2, algoritma kompresi manakah yang paling efisien?
16
Antara xz, gzip, dan bzip2, algoritma kompresi manakah yang memberikan ukuran file terkecil dan kecepatan tercepat saat mengompresi tarball yang cukup besar?
'yang terbaik' seperti pada 'menghasilkan ukuran file terkecil'?
Hennes
Saya tidak tahu, saya sedang berusaha menemukan pertanyaan sehingga saya bisa menambahkan tes saya sebagai jawaban. Saya juga tidak tahu mengapa benda ini ditutup. @Karan
Nathan2055
1
Oh, kenapa ditutup itu mudah. "Terbaik" sangat subyektif dan biasanya mengarah pada diskusi atau jawaban yang tidak konstruktif. Kompresi terbaik dapat berupa ukuran file terkecil, kompresi tercepat, daya paling kecil yang digunakan untuk kompres (misalnya pada laptop), pengaruh paling kecil pada sistem saat mengompresi (mis. Program tapak tunggal kuno dengan hanya menggunakan salah satu inti), ... atau kombinasi dari semua itu.
Hennes
Artikel yang menarik untuk dibaca adalah tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html (berbasis windows, dan fokus pada 7zip, magicRAR, WinRAR dan WinZip daripada xz, gz atau bz, tapi masih menarik dan memberikan informasi latar belakang).
Hennes
@ Hennes - Saya membersihkan pos untuk menggantikan yang terbaik dengan apa yang saya teliti. Juga, terima kasih untuk artikel yang Anda sebutkan, saya akan membacanya hari ini.
Nathan2055
Jawaban:
15
Dalam tes stres saya, saya memampatkan 464 megabita data menggunakan tiga format yang tercantum. Gzip mengembalikan file 364 MB. Bzip2 mengembalikan file 315 MB. Xz mengembalikan file 254 MB. Saya juga melakukan tes kecepatan sederhana:
Kompresi:
1: Gzip
2: Xz
3: Bzip2 (kipas saya bertiup sedikit saat ini berlangsung, menunjukkan bahwa Athlon II saya cukup tegang)
Dekompresi:
1: Xz
2: Gzip
3: Bzip2
Harap dicatat bahwa semua tes ini dilakukan dengan versi 7-Zip terbaru.
Xz adalah format terbaik untuk kompresi menyeluruh, sedangkan Gzip sangat baik untuk kecepatan. Bzip2 layak untuk rasio kompresinya, meskipun xz mungkin harus digunakan sebagai gantinya.
semua tingkat kompresi pada maks, CPU Intel I7 3740QM, Memori 32GB 1600, sumber dan tujuan pada disk RAM
Saya umumnya menggunakan rar atau 7z untuk pengarsipan file normal seperti dokumen.
dan untuk pengarsipan file sistem saya menggunakan .tar.gz atau .tar.xz dengan file-roller atau tar dengan opsi -z atau -J bersama dengan --preserve untuk kompres secara native dengan tar dan menjaga izin (juga sebagai alternatif .tar.7z atau .tar.rar dapat digunakan)
pembaruan: karena tar hanya mempertahankan izin normal dan bukan ACL, juga .7z plus cadangan dan memulihkan izin dan ACL secara manual melalui getfacl dan sefacl dapat digunakan yang tampaknya menjadi pilihan terbaik untuk pengarsipan file atau pencadangan file sistem karena akan penuh melestarikan izin dan ACL, memiliki checksum, uji integritas dan kemampuan enkripsi, satu-satunya downside adalah bahwa p7zip tidak tersedia di mana-mana
Mahasiswa, apa pilihan rar? Mengapa tidak mencoba lrzip oleh kolivas , ini seharusnya bekerja dengan baik untuk gambar disk virtual.
osgx
Saya bermigrasi dari RAR ke Git dan tarballs untuk file teks dan btrf saya untuk yang lainnya; alasan saya untuk menggunakan RAR bukan kinerja, saya menggunakannya karena fitur seperti catatan pemulihan, checksum 256bit tingkat file terpisah untuk setiap file dan ....
Sudoer
3
Saya pikir artikel ini memberikan hasil yang sangat menarik.
Format yang paling efisien ukurannya adalah xz dan lzma, keduanya dengan parameter -e disahkan.
Algoritma tercepat adalah sejauh lzop dan lz4 yang dapat menghasilkan tingkat kompresi tidak terlalu jauh dari gzip dalam 1,3 detik sementara gzip mengambil 8,1 detik. Rasio kompresi adalah 2,8 untuk lz4 dan 3,7 untuk gzip.
Berikut adalah beberapa hasil yang saya ekstrak dari artikel ini:
Gzip: 8.1s @ 3.7
lz4: 1.3s @ 2.8
xz: 32.2s @ 5.43
xz -e: 6m40 @ 7.063
xz: 4m51s @ 7.063
Jadi, jika Anda benar-benar membutuhkan kecepatan, lz4 mengagumkan dan masih memberikan rasio kompresi 2,8.
Jika Anda sangat membutuhkan cadangan byte, xz pada level kompresi maksimum (9) melakukan pekerjaan terbaik untuk file teks seperti sumber kernel. Namun, ini sangat panjang dan membutuhkan banyak memori.
Yang bagus di mana diperlukan untuk meminimalkan dampak pada waktu DAN ruang adalah gzip. Ini yang akan saya gunakan untuk membuat cadangan harian manual dari lingkungan produksi.
Jawaban:
Dalam tes stres saya, saya memampatkan 464 megabita data menggunakan tiga format yang tercantum. Gzip mengembalikan file 364 MB. Bzip2 mengembalikan file 315 MB. Xz mengembalikan file 254 MB. Saya juga melakukan tes kecepatan sederhana:
Kompresi:
1: Gzip
2: Xz
3: Bzip2 (kipas saya bertiup sedikit saat ini berlangsung, menunjukkan bahwa Athlon II saya cukup tegang)
Dekompresi:
1: Xz
2: Gzip
3: Bzip2
Harap dicatat bahwa semua tes ini dilakukan dengan versi 7-Zip terbaru.
Xz adalah format terbaik untuk kompresi menyeluruh, sedangkan Gzip sangat baik untuk kecepatan. Bzip2 layak untuk rasio kompresinya, meskipun xz mungkin harus digunakan sebagai gantinya.
sumber
bzip2 -9 <file>
?Saya melakukan benchmark sendiri pada instalasi 1.1m Linux vmdk image:
semua tingkat kompresi pada maks, CPU Intel I7 3740QM, Memori 32GB 1600, sumber dan tujuan pada disk RAM
Saya umumnya menggunakan rar atau 7z untuk pengarsipan file normal seperti dokumen.
dan untuk pengarsipan file sistem saya menggunakan .tar.gz atau .tar.xz dengan file-roller atau tar dengan opsi -z atau -J bersama dengan --preserve untuk kompres secara native dengan tar dan menjaga izin (juga sebagai alternatif .tar.7z atau .tar.rar dapat digunakan)
pembaruan: karena tar hanya mempertahankan izin normal dan bukan ACL, juga .7z plus cadangan dan memulihkan izin dan ACL secara manual melalui getfacl dan sefacl dapat digunakan yang tampaknya menjadi pilihan terbaik untuk pengarsipan file atau pencadangan file sistem karena akan penuh melestarikan izin dan ACL, memiliki checksum, uji integritas dan kemampuan enkripsi, satu-satunya downside adalah bahwa p7zip tidak tersedia di mana-mana
sumber
Saya pikir artikel ini memberikan hasil yang sangat menarik.
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LX4_vs_LZO
Format yang paling efisien ukurannya adalah xz dan lzma, keduanya dengan parameter -e disahkan.
Algoritma tercepat adalah sejauh lzop dan lz4 yang dapat menghasilkan tingkat kompresi tidak terlalu jauh dari gzip dalam 1,3 detik sementara gzip mengambil 8,1 detik. Rasio kompresi adalah 2,8 untuk lz4 dan 3,7 untuk gzip.
Berikut adalah beberapa hasil yang saya ekstrak dari artikel ini:
Gzip: 8.1s @ 3.7
lz4: 1.3s @ 2.8
xz: 32.2s @ 5.43
xz -e: 6m40 @ 7.063
Jadi, jika Anda benar-benar membutuhkan kecepatan, lz4 mengagumkan dan masih memberikan rasio kompresi 2,8.
Jika Anda sangat membutuhkan cadangan byte, xz pada level kompresi maksimum (9) melakukan pekerjaan terbaik untuk file teks seperti sumber kernel. Namun, ini sangat panjang dan membutuhkan banyak memori.
Yang bagus di mana diperlukan untuk meminimalkan dampak pada waktu DAN ruang adalah gzip. Ini yang akan saya gunakan untuk membuat cadangan harian manual dari lingkungan produksi.
sumber