Avantages et inconvénients de bzip vs gzip?

122

Je connais gzip depuis des années, j'ai récemment vu bzip être utilisé au travail. Sont-ils fondamentalement équivalents ou existe-t-il des avantages et inconvénients significatifs pour l'un par rapport à l'autre?

ripper234
la source
2
Bien qu'il s'agisse d' une vieille question avec une réponse correcte et correcte, je voudrais diriger les internautes vers ce résultat de Google: tukaani.org/lzma/benchmarks.html, car elle la décompose davantage
Angry 84 en
N'est-ce pas bzip pour la compression et gzip pour l'archivage?
juniorRubyist
@juniorRubyist source?
ripper234
Je viens d'entendre ça. J'ai oublié où.
juniorRubyist
Aucune mention d'accès aléatoire? stackoverflow.com/questions/14225751/…
neverMind9

Réponses:

147

Gzip et bzip2 sont fonctionnellement équivalents. (Il était une fois un bzip, mais il semble avoir complètement disparu du monde.) Les autres formats de compression courants sont zip, rar et 7z; ces trois font à la fois la compression et l’archivage (regroupant plusieurs fichiers en un). Voici quelques évaluations typiques en termes de vitesse, de disponibilité et de taux de compression typiques (notez que ces évaluations sont quelque peu subjectives, ne les prenez pas comme un évangile):

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

Comme vous pouvez le constater, il n'y a pas de gagnant clair. Si vous souhaitez utiliser des programmes susceptibles d’être déjà installés, utilisez zip sous Windows (ou, si possible, des archives à extraction automatique, car Windows n’existe aucune de celles-ci) et gzip sous unix. Si vous voulez une compression maximale, utilisez 7z.

Rar a également un inconvénient: pour autant que je sache, il n’existe aucun logiciel libre permettant de créer des archives rar ou de décompresser toutes les archives rar. Les autres formats ont des implémentations libres et aucune revendication de brevet (sérieuse).

Gilles
la source
2
Autant que je sache, toutes les versions de Windows depuis XP, peuvent ouvrir un fichier zip de manière native en utilisant le fichier explorern
Lie Ryan
22
@ new123456 Sous OpenBSD, gzip est dans le système de base, mais bzip2 doit être installé à partir d'un package. De nombreux routeurs * WRT incluent gzip mais pas bzip2.
Gilles le
2
@Gilles Je peux confirmer que ma version DD-WRT: 08/12/10 (révision SVN: 14929) n’a pas bzip2, mais gzip.
Urda
11
@mlainz Recherche originale. Ce n'est pas Wikipedia.
Gilles
3
il semble avoir complètement disparu - Plain old a bzipdisparu parce qu'il utilisait le codage algorithmique breveté. En raison du brevet, il a été repensé pour utiliser le codage Huffman à la place. Au cours de cette refonte, de nouvelles fonctionnalités et améliorations ont été ajoutées. La transformation fondamentale de Burrows – Wheeler, qui en fait un algorithme de compression unique, est restée la même dans les deux versions.
forêt le
24

Autant que je sache, gzip est globalement plus rapide, alors que bzip produit globalement une compression plus petite.

Lie Ryan
la source
En outre, gzip semble être légèrement mieux supporté, en particulier sous Windows ..
Dentrasi
5
@Dentrasi: Winrar / 7zip prend en charge les deux, quel est le problème?
Whitequark
@whitequark: être largement supporté est surtout important pour Unix car les utilisateurs peuvent ne pas avoir d'accès root et doivent travailler avec ce qui est déjà installé. S'applique également aux environnements Windows où l'utilisateur n'a pas d'accès administrateur (écoles / bibliothèques / etc.).
Matthieu
4
@ Matthew, vous n'avez pas besoin de droits d'administrateur pour utiliser beaucoup de logiciels libres portés, y compris 7zip.
Whitequark
1
@IQAndreas: quelques repères: 1 , 2 , 3
Lie Ryan
5

Les algorithmes ont des compromis temps, mémoire, espace différents. Gardez à l'esprit que ces algorithmes ont été écrits il y a longtemps et que votre smartphone dispose de beaucoup plus de CPU que les ordinateurs de bureau de cette époque.

Vous avez le choix entre l’universalité (.gz) et un peu plus de compression (.bz2). Vous seul pouvez dire ce qui vous intéresse le plus.

Un des avantages de .gz est qu’il peut compresser un flux, une séquence dans laquelle vous ne pouvez pas regarder en arrière. Cela en fait le compresseur officiel des flux http. J'avais besoin d'utiliser gzip une fois pour cette raison, mais il est peu probable que vous ayez à y penser.

Rich Homolka
la source
4

Voici une liste de sites qui testent des algorithmes de compression. Pour trouver juste bzip et gzip, vous devrez creuser un peu, mais la plupart des sites énuméreront les caractéristiques des algorithmes. De cette façon, vous pouvez comparer ce qui est important pour vous, la taille (taux de compression), le temps, la mémoire, le processeur.
http://www.maximumcompression.com/benchmarks/benchmarks.php

Scott McClenning
la source
1

D'après mon expérience, bzip a toujours offert de meilleurs taux de compression que gzip. De plus, avec 7zip en tant que gestionnaire et algorithme bzip, 7zip peut utiliser des processeurs multicœurs.

Sathyajith Bhat
la source
1

Selon http://tukaani.org/lzma/benchmarks.html , gzip se compresse deux fois plus vite que bzip2 et se décompresse dix fois plus vite.

Par exemple, pour une utilisation avec la mise en cache s3, sur travis, etc., où vous voulez une vitesse de compression / décompression, et pas seulement de petites tailles, gzip pourrait être un bon compromis.

Hugh Perkins
la source