web-dev-qa-db-fra.com

Avantages et inconvénients de bzip vs gzip?

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 des inconvénients significatifs pour l'un par rapport à l'autre?

118
ripper234

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 ces solutions) 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).

143
Gilles

Autant que je sache, gzip est globalement plus rapide, alors que bzip dans son ensemble produit une compression plus petite (plus petite).

23
Lie Ryan

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.

Votre choix se situe 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.

5
Rich Homolka

Voici une liste de sites qui testent des algorithmes de compression. Pour trouver uniquement 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

3
Scott McClenning

Per http://tukaani.org/lzma/benchmarks.html , gzip se compresse deux fois plus vite que bzip2 et se décomprime 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.

1
Hugh Perkins

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.

1
Sathyajith Bhat