Vergleiche Komprimierung: gzippen einzelner Dateien mit gzippen von Teer derselben Dateien

0

Stellen Sie sich ein hypothetisches Archivformat vor, das unter dem Deckmantel der Liste der zu packenden Dateien Folgendes ausführt:

  1. gzip jede Datei einzeln
  2. Tar die gzips zusammen

Vergleichen Sie dies mit traditionellem Teer, gefolgt von Gzip.

Unter welchen Umständen würde die erstere Methode zu einer besseren Komprimierung führen als die letztere?

Eine benutzerfreundliche Implementierung der früheren Methode würde einen schnelleren Zugriff auf einzelne gepackte Dateien sowie einen sofortigen Zugriff auf den Index ermöglichen. Ich frage mich daher, unter welchen Bedingungen diese Vorteile durch eine mögliche Reduzierung der Komprimierung ausgeglichen werden, da der gesamte Inhaltsstrom nicht berücksichtigt wird.

Arifogel
quelle

Antworten:

0
  1. Einzelne komprimierte Dateien haben jeweils eigene Header und reduzieren so die Komprimierung, indem sie die Anzahl der Header erhöhen. Jeder Header ist klein, vielleicht ein paar hundert Bytes, aber sie summieren sich.

  2. Bei der Komprimierung werden Wörterbücher verwendet, und das Platzieren von Wörterbüchern in jeder Datei erhöht den Overhead. Mehrere Dateien verwenden Teile desselben Wörterbuchs, um die Gesamtdateigröße zu verringern.

  3. Daten, die entweder nicht komprimiert werden können oder ein sehr kleines Verhältnis aufweisen, haben einen vernachlässigbaren Effekt, wenn sie einzeln komprimiert werden.

  4. Die Zeit, die zum Komprimieren benötigt wird, ist etwas länger, da angehalten, alles auf die Festplatte gespült und für jede Datei eine neue Datei (neuer Header, neues Wörterbuch usw.) erstellt werden muss, statt nur Daten an eine Datei anzuhängen.

  5. Eine große Anzahl ähnlicher Dateien, z. B. wochenlang komprimierte Protokolldateien, geben Wörterbücher frei und sparen Speicherplatz.

  6. Jedes Dateisystem verwendet Speichereinheiten mit gerader Größe, in vielen Fällen 4 KB, und ein Teil dieser 4 KB wird für jede Datei verschwendet.

Solange Sie nicht mit Tausenden oder Zehntausenden von Dateien zu tun haben, werden die gesparten oder verlorenen Beträge bei beiden Techniken nicht viel ausmachen.

kybernard
quelle