Pro dan kontra bzip vs gzip?

122

Saya sudah kenal gzip selama bertahun-tahun, baru-baru ini saya melihat bzip digunakan di tempat kerja. Apakah mereka pada dasarnya setara, atau ada pro dan kontra yang signifikan untuk salah satu dari mereka di atas yang lain?

ripper234
sumber
2
Meskipun ini adalah pertanyaan lama dengan jawaban yang valid dan benar, saya ingin mengarahkan orang ke hasil google ini: tukaani.org/lzma/benchmarks.html karena itu memecahnya lebih jauh
Marah 84
Bukankah bzip untuk kompresi dan gzip untuk arsip?
juniorRubyist
@juniorRubyist source?
ripper234
Saya baru saja mendengarnya. Saya lupa dimana.
juniorRubyist
Tidak disebutkan akses acak? stackoverflow.com/questions/14225751/…
neverMind9

Jawaban:

147

Gzip dan bzip2 secara fungsional setara. (Dahulu ada bzip, tetapi tampaknya telah sepenuhnya menghilang dari muka dunia.) Format kompresi umum lainnya adalah zip, rar dan 7z; ketiganya melakukan kompresi dan pengarsipan (pengemasan banyak file menjadi satu). Berikut adalah beberapa peringkat tipikal dalam hal kecepatan, ketersediaan dan rasio kompresi tipikal (perhatikan bahwa peringkat ini agak subyektif, jangan menganggapnya sebagai Injil):

decompression speed (fast > slow): gzip, zip > 7z > rar > bzip2
compression speed (fast > slow): gzip, zip > bzip2 > 7z > rar
compression ratio (better > worse): 7z > rar, bzip2 > gzip > zip
availability (unix): gzip > bzip2 > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip, bzip2

Seperti yang Anda lihat, tidak ada pemenang yang jelas. Jika Anda ingin bergantung pada program yang mungkin sudah diinstal, gunakan zip pada Windows (atau jika mungkin, arsip yang mengekstraksi sendiri, karena Windows tidak menyertakan semua ini) dan gzip di unix. Jika Anda ingin kompresi maksimum, gunakan 7z.

Rar juga memiliki kelemahan yang, sejauh yang saya tahu, tidak ada perangkat lunak gratis yang membuat arsip rar atau yang dapat membongkar semua arsip rar. Format lain memiliki implementasi gratis dan tidak ada klaim paten (serius).

Gilles
sumber
2
sejauh yang saya tahu, semua versi Windows sejak XP, dapat membuka file zip secara native menggunakan file explorern
Lie Ryan
22
@ new123456 Pada OpenBSD, gzip ada di sistem dasar tetapi bzip2 harus diinstal dari sebuah paket. Banyak * router WRT menyertakan gzip tetapi tidak bzip2.
Gilles
2
@Gilles Saya dapat mengonfirmasi bahwa Rilis DD-WRT saya: 08/12/10 (revisi SVN: 14929) tidak memiliki bzip2, tetapi memang memiliki gzip.
Urda
11
@ mlainz Penelitian asli. Ini bukan Wikipedia.
Gilles
3
tampaknya telah sepenuhnya lenyap - Plain lama bziplenyap karena menggunakan kode algoritme yang dipatenkan. Karena paten, itu dirancang ulang untuk menggunakan pengkodean Huffman sebagai gantinya. Selama desain ulang ini, fitur baru dan peningkatan ditambahkan. Hal mendasar yang membuatnya menjadi algoritma kompresi yang unik, transformasi Burrows-Wheeler, tetap sama di kedua versi.
hutan
24

Sejauh yang saya tahu, gzip secara keseluruhan lebih cepat, sementara bzip secara keseluruhan menghasilkan kompresi yang lebih baik (lebih kecil).

Lie Ryan
sumber
Juga, gzip tampaknya sedikit lebih baik didukung, terutama pada Windows ..
Dentrasi
5
@Dentrasi: winrar / 7zip mendukung keduanya, apa masalahnya?
whitequark
@ whitequark: didukung secara luas sebagian besar penting untuk unix karena pengguna mungkin tidak memiliki akses root dan harus bekerja dengan apa yang sudah diinstal. Juga berlaku untuk lingkungan Windows di mana pengguna tidak memiliki akses admin (sekolah / perpustakaan / dll).
Matius
4
@ Matius, Anda tidak perlu hak admin untuk menggunakan banyak perangkat lunak bebas porting, termasuk 7zip.
whitequark
1
@IQAndreas: beberapa tolok ukur: 1 , 2 , 3
Lie Ryan
5

Algoritme memiliki waktu, memori, pengorbanan ruang yang berbeda. Ingatlah bahwa algoritma ini ditulis beberapa waktu yang lalu dan smartphone Anda memiliki CPU berkali-kali lebih banyak daripada desktop pada masa itu.

Pilihan Anda adalah antara universalitas (.gz) dan sedikit lebih banyak kompresi (.bz2). Hanya Anda yang bisa mengatakan yang Anda pedulikan.

Satu keuntungan dari .gz adalah ia dapat memampatkan aliran, suatu urutan di mana Anda tidak dapat melihat ke belakang. Ini menjadikannya sebagai kompresor resmi aliran http. Saya perlu menggunakan gzip sekali karena itu, tetapi tidak mungkin Anda harus memikirkannya.

Homolka yang kaya
sumber
4

Berikut adalah daftar situs yang menguji algoritma kompresi, untuk menemukan hanya bzip dan gzip Anda harus melakukan penggalian, tetapi sebagian besar situs akan mencantumkan karakteristik algoritma. Dengan cara ini Anda dapat membandingkan apa yang penting bagi Anda, ukuran (rasio kompresi), waktu, memori, cpu.
http://www.maximumcompression.com/benchmarks/benchmarks.php

Scott McClenning
sumber
1

Dalam pengalaman saya, bzip secara konsisten menawarkan rasio kompresi yang lebih baik daripada gzip. Ditambah dengan 7zip sebagai manajer dan algoritma bzip, 7zip dapat menggunakan prosesor multi-core.

Sathyajith Bhat
sumber
1

Per http://tukaani.org/lzma/benchmarks.html , gzip memampatkan dua kali lebih cepat dari bzip2, dan mendekompresi sepuluh kali lebih cepat.

Misalnya untuk digunakan dengan cache s3, pada travis dll, di mana Anda ingin kecepatan kompres / dekompresi, bukan hanya ukuran kecil, gzip mungkin merupakan trade-off yang bagus.

Hugh Perkins
sumber