Antara xz, gzip, dan bzip2, algoritma kompresi manakah yang memberikan ukuran file terkecil dan kecepatan tercepat saat mengompresi tarball yang cukup besar?
Antara xz, gzip, dan bzip2, algoritma kompresi manakah yang memberikan ukuran file terkecil dan kecepatan tercepat saat mengompresi tarball yang cukup besar?
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.
bzip2 -9 <file>
?
Saya melakukan benchmark sendiri pada instalasi 1.1m Linux vmdk image:
rar =260MB comp= 85s decomp= 5s
7z(p7z)=269MB comp= 98s decomp=15s
tar.xz =288MB comp=400s decomp=30s
tar.bz2=382MB comp= 91s decomp=70s
tar.gz =421MB comp=181s decomp= 5s
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
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.