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?
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?
Jawaban:
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).
bzip
lenyap 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.
Sejauh yang saya tahu, gzip secara keseluruhan lebih cepat, sementara bzip secara keseluruhan menghasilkan kompresi yang lebih baik (lebih kecil).
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.
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
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.
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.