Ich kenne gzip seit Jahren und habe kürzlich gesehen, wie bzip bei der Arbeit verwendet wird. Sind sie im Grunde gleichwertig oder gibt es signifikante Vor- und Nachteile für einen von ihnen gegenüber dem anderen?
Ich kenne gzip seit Jahren und habe kürzlich gesehen, wie bzip bei der Arbeit verwendet wird. Sind sie im Grunde gleichwertig oder gibt es signifikante Vor- und Nachteile für einen von ihnen gegenüber dem anderen?
Antworten:
Gzip und bzip2 sind funktional gleichwertig. (Es gab einmal ein bzip, aber es scheint völlig verschwunden zu sein.) Andere gängige Komprimierungsformate sind zip, rar und 7z; Diese drei Methoden dienen sowohl zur Komprimierung als auch zur Archivierung (Packen mehrerer Dateien in eine). Hier sind einige typische Bewertungen in Bezug auf Geschwindigkeit, Verfügbarkeit und typisches Komprimierungsverhältnis (beachten Sie, dass diese Bewertungen etwas subjektiv sind und nicht als Evangelium verstanden werden):
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
Wie Sie sehen, gibt es keinen klaren Gewinner. Wenn Sie sich auf Programme verlassen möchten, die wahrscheinlich bereits installiert sind, verwenden Sie zip unter Windows (oder wenn möglich selbstextrahierende Archive, da Windows mit keinem dieser Programme ausgeliefert wird) und gzip unter Unix. Wenn Sie maximale Komprimierung wünschen, verwenden Sie 7z.
Rar hat auch den Nachteil, dass es meines Wissens keine freie Software gibt, die rar-Archive erstellt oder alle rar-Archive entpacken kann. Die anderen Formate haben freie Implementierungen und keine (ernsthaften) Patentansprüche.
bzip
verschwunden, weil es die patentierte algorithmische Codierung verwendet hat. Aufgrund des Patents wurde es neu gestaltet, um stattdessen die Huffman-Codierung zu verwenden. Während dieser Neugestaltung wurden neue Funktionen und Verbesserungen hinzugefügt. Die grundlegende Eigenschaft, die einen einzigartigen Komprimierungsalgorithmus ausmacht, die Burrows-Wheeler-Transformation, ist in beiden Versionen gleich geblieben.
Soweit ich das beurteilen kann, ist gzip insgesamt schneller, während bzip insgesamt eine bessere (kleinere) Komprimierung erzeugt.
Die Algorithmen haben unterschiedliche Zeit-, Speicher- und Raumkompromisse. Denken Sie daran, dass diese Algorithmen schon vor langer Zeit geschrieben wurden und Ihr Smartphone viel mehr CPU als die Desktops jener Tage hat.
Sie können zwischen Universalität (.gz) und etwas mehr Komprimierung (.bz2) wählen. Nur Sie können sagen, was Sie mehr interessiert.
Ein Vorteil von .gz ist, dass es einen Stream komprimieren kann, eine Sequenz, hinter der Sie nicht nachsehen können. Dies macht es zum offiziellen Komprimierer von http-Streams. Aus diesem Grund musste ich gzip einmal verwenden, aber es ist unwahrscheinlich, dass Sie darüber nachdenken müssen.
Hier ist eine Liste von Sites, die Komprimierungsalgorithmen testen. Um nur bzip und gzip zu finden, müssen Sie ein wenig graben, aber die meisten Sites listen Eigenschaften der Algorithmen auf. Auf diese Weise können Sie vergleichen, was für Sie wichtig ist: Größe (Komprimierungsrate), Zeit, Speicher, CPU.
http://www.maximumcompression.com/benchmarks/benchmarks.php
Meiner Erfahrung nach bietet bzip durchweg bessere Komprimierungsraten als gzip. Mit 7zip als Manager und bzip-Algorithmus kann 7zip auch Multi-Core-Prozessoren verwenden.
Laut http://tukaani.org/lzma/benchmarks.html komprimiert gzip doppelt so schnell wie bzip2 und dekomprimiert zehnmal so schnell.
ZB für die Verwendung mit S3-Caching, auf Travis usw., wo Sie die Geschwindigkeit des Komprimierens / Dekomprimierens wünschen, nicht nur kleine Größen, könnte gzip ein guter Kompromiss sein.