Zip, Rar, 7z, Gzip, BZip2, Tar usw. Ich höre, 7z ist der Geschmack des Monats, warum? Ist es für alle Situationen am besten oder gibt es bessere Möglichkeiten für bestimmte Situationen?
Oder hat der eigentliche Dateiarchivierer, dh WinZip, WinRar, 7Zip usw. (im Gegensatz zum Format), einen größeren Effekt?
In Ihrer Antwort könnten Sie beschreiben, welche Art von Kompromiss zwischen Geschwindigkeit und Komprimierung Ihr erwähntes Format verwendet.
Bitte geben Sie Links zu empirischen Tests an, die Ihre Antwort stützen.
Hintergrund: Ich muss einen benutzerdefinierten Suchindex sichern, der ungefähr 3000 relativ kleine Dateien (weniger als 10 MB) erstellt, die jeweils viele sich wiederholende Daten enthalten.
(Wie üblich hat Wikipedia einen relevanten Artikel, aber der Abschnitt zum Leistungsvergleich ist kurz.)
Vielen Dank
quelle
Literatur-Empfehlungen:
Dateikomprimierung im Multi-Core-Zeitalter (Jeff Atwood aka CodingHorror, Februar 2009)
Und in Bezug auf Algorithmen:
quelle
Es geht nicht nur um Effizienz und Geschwindigkeit. Sicher, sie sind wichtig, und Sie können sich die Benchmarks für diese ansehen und mit Bedacht aus den Optionen auswählen (obwohl ich ein einfaches eigenes Benchmarking mit Ihren eigenen Daten auf Ihrem eigenen Server empfehlen würde). Die Archivierung führt jedoch zwangsläufig dazu, dass Sie irgendwann wieder auf Ihre Daten zugreifen (andernfalls warum nicht einfach löschen?). Oder vielleicht werden Sie Jahre später nicht mehr auf die Daten zugreifen, sondern auf Dritte. Wählen Sie etwas aus, das verfügbar ist, wenn Sie auf die Daten zugreifen müssen, und etwas, das die Benutzer erkennen. Ich persönlich verwende 7zip, aber wenn ich Dateien archiviere, die andere möglicherweise benötigen, verwende ich zip. Sie wissen es, viele Werkzeuge können damit umgehen. Es ist vielleicht nicht ganz so schnell oder ganz so klein, aber es hilft beim menschlichen Faktor.
quelle
lzma scheint sowohl im Kompressionsverhältnis als auch in der Geschwindigkeit sehr gut zu funktionieren .
In den folgenden http://tukaani.org/lzma/benchmarks Benchmarks ergab die schnellste Einstellung für lzma die Komprimierungszeiten erheblich schneller als die schnellste bzip2-Option, während die Komprimierung immer noch besser als die langsamste bzip2-Option war:
Es funktioniert besonders gut mit Binärdaten, aber ich glaube, ich habe einige Benchmarks für Klartext gelesen, bei denen bzip2 die Leistung übertroffen hat.
Die lzma-Manpage ist lesenswert:
quelle
Schauen Sie sich diesen Wikipedia-Eintrag an . Nach unten "Effizienzvergleich". Sie erhalten ungefähr den Prozentsatz der Komprimierung und die benötigte Zeit. Alle diese Zahlen variieren (in Bezug auf die Geschwindigkeit) je nach Geschwindigkeit der verwendeten Maschine, Speicherplatz usw.
Weitere Komprimierungsbenchmarks:
quelle
Vergleich von zip, 7z, rar mit zwei Fällen
Es hängt davon ab, was genau Sie komprimieren, aber im Allgemeinen nutzt 7z mehrere Prozessoren besser, und das 7z-Komprimierungsformat selbst liefert eine höhere Komprimierung als zip und manchmal eine höhere als rar (obwohl rar und 7z fast gleichwertig sind, rar jedoch nicht nicht frei ...)
Meine Tests vor einigen Monaten ergaben folgende Ergebnisse:
Komprimieren einer einzelnen Datenbankdatei mit 10 MB Zugriff:
Das Komprimieren eines Ordners mit mehr als neuntausend Dateien unterschiedlichen Typs (903.488 KB) ergab Folgendes (dies ist eine Kombination aus Quellcode und allen ihn umgebenden Tools für die zu entwickelnde Software):
Aus Zeitgründen war dies auf einem Core2 Duo, 2 GHz, 1 GB RAM und einer billigen Festplatte.
7z verbesserte das Kompressionsverhältnis in den beiden Fällen, die ich über den Reißverschluss hinaus getestet habe, erheblich und verbesserte sich sogar gegenüber rar, aber 7z war sicherlich langsamer. Nicht signifikant, aber genug, um bemerkt zu werden.
-Adam
quelle
Ich habe gerade dar installiert (hatte aber noch keine Chance damit zu spielen). Es ähnelt tar mit gzip- oder bzip2-Komprimierung, mit der zusätzlichen Möglichkeit, das Archiv in mehrere Teile aufzuteilen und die Parität so zu berechnen, dass ein oder mehrere Teile, die beschädigt sind, aus den Paritätsdateien rekonstruiert werden können.
quelle