de.phhsnews.com


de.phhsnews.com / Warum ist Zip in der Lage, einzelne Dateien besser zu komprimieren als mehrere Dateien mit demselben Inhalt?

Warum ist Zip in der Lage, einzelne Dateien besser zu komprimieren als mehrere Dateien mit demselben Inhalt?


Wir können unsere Dateien so komprimieren, dass sie einfacher zu teilen und / oder zu transportieren sind elektronische Leben viel einfacher, aber manchmal können wir sehen, ungerade oder unerwartete Sizing-Ergebnisse, nachdem wir sie komprimieren. Warum das? Der heutige SuperUser Q & A-Post hat Antworten auf die Fragen eines verwirrten Lesers.

Die heutige Question & Answer-Sitzung kommt dank SuperUser zustande - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.

Foto mit freundlicher Genehmigung von Jean-Etienne Minh-Duy Poirrier (Flickr).

Die Frage

SuperUser reader sechzigfootersdude möchte wissen, warum zip in der Lage ist, einzelne Dateien besser zu komprimieren als mehrere Dateien mit demselben Inhaltstyp:

Angenommen, ich habe 10.000 XML-Dateien und möchte sie an einen Freund senden. Bevor ich sie sende, möchte ich sie komprimieren.

Methode 1: Komprimiere sie nicht

Ergebnisse:

Methode 2: Zip jede Datei separat und sende ihm 10.000 komprimierte XML-Dateien

Befehl:

Ergebnisse:

Methode 3: Erstellen einer einzelnen Zip-Datei mit allen 10.000 XML-Dateien

Befehl:

Ergebnisse:

Methode 4: Verketten Sie die Dateien in eine einzelne Datei und Zip es

Befehl:

Ergebnisse:

Fragen

  • Warum bekomme ich so dramatisch bessere Ergebnisse, wenn ich nur eine einzelne Datei komprimiere?
  • Ich erwartete, dass ich mit Methode 3 und nicht mit Methode 2 drastisch bessere Ergebnisse erzielen würde, aber ich unterlassen Sie. Warum ist das so?
  • Ist dieses Verhalten zipspezifisch? Wenn ich Gzip verwenden würde, würde ich andere Ergebnisse erhalten?

Zusätzliche Informationen

Metadaten

Eine der Antworten besagt, dass der Unterschied die System-Metadaten sind, die in der ZIP-Datei gespeichert sind. Ich glaube nicht, dass dies der Fall sein kann. Um es zu testen, habe ich Folgendes getan:

Die resultierende ZIP-Datei ist 1,4 MB. Das bedeutet, dass es immer noch ungefähr zehn MB unerklärten Speicherplatz gibt.

Warum kann zip einzelne Dateien besser komprimieren als mehrere Dateien mit demselben Inhaltstyp?

Die Antwort

SuperUser-Mitwirkende Alan Shutko und Aganju haben die Antwort für uns. Zuerst, Alan Shutko:

Die Zip-Komprimierung basiert auf sich wiederholenden Mustern in den zu komprimierenden Daten, und die Komprimierung wird umso besser, je länger die Datei ist, da mehr und längere Muster gefunden und verwendet werden können.

Wenn Sie eine Datei komprimieren, ist das Wörterbuch, das (kurze) Codes mit (längeren) Mustern verknüpft, notwendigerweise in jeder resultierenden ZIP-Datei enthalten. Wenn Sie eine lange Datei zippen, wird das Wörterbuch "wiederverwendet" und wird für alle Inhalte noch effektiver.

Wenn Ihre Dateien sogar ein bisschen ähnlich sind (wie Text immer ist), wird die Wiederverwendung des 'Wörterbuchs' sehr effizient und Das Ergebnis ist eine viel kleinere Gesamtzip-Datei.

Es folgt die Antwort von Aganju:

In zip wird jede Datei einzeln komprimiert. Das Gegenteil ist feste Komprimierung , dh Dateien werden zusammen komprimiert. 7-Zip und Rar verwenden standardmäßig eine solide Komprimierung. Gzip und Bzip2 können nicht mehrere Dateien komprimieren, daher wird Tar zuerst verwendet und hat denselben Effekt wie die Komprimierung.

Da XML-Dateien eine ähnliche Struktur (und wahrscheinlich ähnlichen Inhalt) haben, wird die Komprimierung höher sein, wenn die Dateien komprimiert werden .

Wenn beispielsweise eine Datei die Zeichenfolge " " enthält und der Komprimierer diese Zeichenfolge bereits in einer anderen Datei gefunden hat, wird sie durch einen kleinen Zeiger auf die vorherige Übereinstimmung ersetzt. Wenn der Compressor keine Solid-Komprimierung verwendet, wird das erste Vorkommen des Strings in der Datei als literal aufgezeichnet, was größer ist.


Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.


Wie man das nostalgische Rauschen und Knacken einer Vinyl-Schallplatte zu MP3-Dateien hinzufügt

Wie man das nostalgische Rauschen und Knacken einer Vinyl-Schallplatte zu MP3-Dateien hinzufügt

Während die gestochen scharfe und saubere Aufnahme, die digitale Musik zulässt, für eine perfekte Wiedergabe hervorragend ist, gibt es etwas zu sagen das Knacken, Knistern und Knacken einer alten Schallplatte im Spiel. Lesen Sie weiter, wenn wir Ihnen zeigen, wie Sie mit Ihrer digitalen Musiksammlung den Klang einer alten Platte nachahmen können.

(how-to)

Was ist der Unterschied zwischen Ruhezustand und Ruhezustand in Windows?

Was ist der Unterschied zwischen Ruhezustand und Ruhezustand in Windows?

Windows bietet verschiedene Möglichkeiten, Energie zu sparen, wenn Sie Ihren PC nicht benutzen. Zu diesen Optionen gehören "Ruhezustand", "Ruhezustand" und "Hybridschlafmodus". Sie sind besonders nützlich, wenn Sie einen Laptop haben. Hier ist der Unterschied zwischen ihnen. Sleep-Modus VERWANDT: PSA: Schalten Sie Ihren Computer nicht, nur Ruhezustand (oder Ruhezustand) Schlafmodus ist ein Energiesparmodus, der ähnlich ist pausiert einen DVD-Film.

(how-to)