Kommentare
- Ich denke, Sie müssen festlegen Führen Sie einen einfachen Test durch und sehen Sie, welches Komprimierungsprogramm " am besten " für Sie ist. Niemand sonst kann es Ihnen sagen.
Antwort
gzip
und xz
verwendet zwei verschiedene Algorithmen und arbeitet daher unterschiedlich, sowohl hinsichtlich des erreichten Komprimierungsgrads als auch hinsichtlich des Ressourcenverbrauchs beim Komprimieren oder Dekomprimieren.
Im Allgemeinen erzielt xz
höhere Komprimierungsverhältnisse, benötigt jedoch viel mehr Speicher und Zeit.
Ich persönlich Verwenden Sie xz
zum Archivieren von Daten. große Dateien, die ich für eine lange Zeit weglegen muss. Ansonsten verwende ich gzip
, da dies normalerweise schneller geht.
Testen Sie beide und sehen Sie, wie sie sich auf Ihren Durchschnitt tar
(oder was auch immer) Datei.
Antwort
xz
ist in den letzten Jahren zu einem Standard für die Paketverwaltung geworden.
Der LZMA2-Komprimierungsalgorithmus, den xz
verwendet, ist außergewöhnlich Effizient mit Textdaten (und „textähnlichen“ Daten). Ich persönlich verwende sie für so ziemlich alles, wo die Geschwindigkeit der rechnergestützten Codierung kein Problem darstellt (xz
dekomprimiert viel schneller als das Komprimieren, es ist tatsächlich eines seiner Designziele.
Es eignet sich also hervorragend für Dinge wie Archivieren oder Sichern (im Allgemeinen für Dateien, die häufig dekomprimiert werden, aber wo Daten werden nicht ständig komprimiert oder geändert usw.). Es ist keine so gute Entscheidung für die Stream-Komprimierung – zumindest nicht allzu oft, da LZMA2 beim Komprimieren nicht gerade ressourcenschonend ist.
Aber ich möchte eine andere Aussage kommentieren von Ihnen: „sollte“. Was Sie sollten oder nicht verwenden, hängt davon ab, wofür Sie Ihre Daten benötigen. Auch wenn xz
und LZMA2 gibt es schon seit Jahren. Aus Kompatibilitätsgründen wird immer noch in Betracht gezogen, mit gz
zu komprimieren. Dinge wie Trac oder cgit bieten .tar.gz
, .7z
und .tar.xz
. Mit der Option .tar.gz
ist es da, weil es „für immer“ war und “ Eine gute Fallback-Maßnahme für jede Art von Gerät, egal wie minimal oder alt.
Nur als Gegenbeispiel: lzop
ist schnell und ressourcenschonend Kompressor, der oft in Raumfahrzeugen verwendet wird, aber ansonsten nicht sehr effizient ist. Ich kann nicht sagen, dass es nicht weit verbreitet ist. Es wird häufig auf Systemen verwendet, auf denen es wichtiger ist, schnell etwas mit wenig Leistung und Rechenraum zu komprimieren.
Was Sie also verwenden sollten oder nicht, ist für Sie und am sinnvollsten Die Personen, die mit Ihren Daten interagieren.
Eines ist mir kürzlich in den Sinn gekommen: man
Seiten werden routinemäßig mit . Wenn Sie beispielsweise /usr/share/man/man1/
untersuchen, werden viele Dateien ähnlich wie mv.1.gz
angezeigt, wenn nicht alle komprimiert sind Aufgrund der besseren Komprimierung wäre es wohl sinnvoll, zu .xz
-Dateien zu wechseln, aber die Speicherplatzgewinne sind im Vergleich zu den negativen Auswirkungen des Abwurfs von für .xz
. Der Grund dafür ist die nahezu universelle Kompatibilität. Selbst das Öffnen der .gz
komprimierten Dateien direkt in Vim funktioniert einwandfrei und fungiert als transparente Komprimierung.
Antwort
Das Format .xz
bietet einige erweiterte Funktionen. Gleichzeitig wurde es so einfach gehalten, dass es in vielen eingebetteten Systemen verwendet werden kann. Hier eine Zusammenfassung der Funktionen:
- Lesen mit wahlfreiem Zugriff: Die Daten können in unabhängig komprimierte Blöcke aufgeteilt werden. Jede -Datei enthält einen Index der Blöcke, der ein eingeschränktes Lesen mit wahlfreiem Zugriff ermöglicht, wenn die Blockgröße klein genug ist.
- Integritätsprüfungen: Die Integrität aller Header ist immer mit CRC32 geschützt . Die Integrität der tatsächlichen Daten kann mit CRC32, CRC64, SHA-256 … überprüft werden.
- Verkettung: Genau wie bei den Dateien
.gz
und.bz2
ist es möglich, Dateien wie sie sind. Der Dekomprimierer kann eine verkettete Datei dekomprimieren, als wäre es eine reguläre.xz
-Datei mit einem Stream. - Auffüllen: Binäre Nullen können an Dateien zum Auffüllen, z ein Block auf einem Sicherungsband. Das Auffüllen muss ein Vielfaches von vier Bytes sein, da die Größe jeder gültigen
.xz
-Datei ein Vielfaches von vier Bytes ist.