Ich muss häufig Protokolldateien sammeln und auf einen zentralen Server hochladen (im Besitz einer anderen Firma). Der zentrale Server hat ein Größenlimit für die Datei, daher versuche ich, die kleinstmögliche Datei zu erstellen, die noch im zip-Format vorliegt.
Was ist die beste Einstellung zum Komprimieren einer Textdatei in ein Zip-Format, wenn ich nur eine kleine Dateigröße benötige?
Ich habe die offensichtliche und gewählte Ultra-Komprimierung durchgeführt und festgestellt, dass LZMA einen besseren Job macht als die Luft abzulassen, aber es gibt viel zu viele andere Permutationen von Optionen, als dass ich sie alle testen könnte.
compression
zip
7-zip
jjnguy
quelle
quelle
Deflate
Format entscheiden, handelt es sich nicht mehr um eine "normale" ZIP-Datei, sondern um eine "erweiterte" ZIP-Datei, die von WinZip entwickelt wurde. Ursprünglich behielten sie die Erweiterung als .zip bei, was zu großer Beunruhigung führte (da die meisten normalen Zip-Handling-Tools nicht mit ihnen umgehen können), aber die meisten Archivierer verwenden jetzt .zipx, um sie von herkömmlichen .zip-Dateien zu unterscheiden. Wenn Sie LZMA verwenden können, wechseln Sie zu .7z und wählen Sie PPMd - es sollte für Textdateien besser (und schneller!) Komprimiert werden.Antworten:
Versuchen Sie Folgendes, um die kleinste Standard-ZIP-Datei zu erstellen, die 7-Zip erstellen kann:
Quelle: Wie kann ich die beste Standard-ZIP-Komprimierung erzielen?
Andernfalls verwenden Sie die folgenden Ultra-Einstellungen, wenn Sie sich nicht für den ZIP-Standard interessieren:
Welche sind:
quelle
Wenn Sie das .7z-Format anstelle von .zip verwenden können, würde ich einfach PPMD mit den folgenden Optionen verwenden und alles andere wie in der Komprimierungsstufe festgelegt belassen:
Ich komprimiere regelmäßig Server- / Textprotokolle (60 MB +) mit diesen Optionen und sie werden normalerweise mit 1-2% der Originalgröße ausgegeben .
quelle
Ich vergleiche für db.fdb 1,2 GB (1236598784 B) in Ubuntu Server 14.04.03 mit p7zip [64] 9.20 auf VM:
und haben das Ergebnis:
Ich denke, die zweite Methode funktioniert gut = (fast) beste Komprimierung mit der besten Zeit. Aber für die beste "Ansicht" und leicht zu merken ist die erste Methode - mit kleinen Dateien und ohne Punktmaximum komprimieren. Zwischen 2 und 3 bekommen wir keine kleineren 7z, zahlen aber fast zwei Mal mehr Zeit für die Komprimierung. Jeder entscheidet mit seinen eigenen.
quelle
Nach ausgiebigen Experimenten, Einarbeiten in die ausführliche 7zip-Dokumentation und Lesen eines Teils des 7z-Quellcodes in Bezug auf die erweiterten LZMA2-Parameter finden Sie nachfolgend eine bessere Methode. Einige reale Testdateien mit 1 GB wurden mehr als 2- bis 4-mal besser reduziert als die zuvor akzeptierten Lösungen, die hier oder sogar in der 7z-Manpage veröffentlicht wurden.
Die LZMA2-Komprimierung wird hier angenommen, aber Sie können möglicherweise eine noch bessere Leistung in 7zip erzielen, indem Sie erweiterte LZMA2-Optionen wie
-m0=LZMA2:27
oder-m0=LZMA2:d25
oder eine Reihe von Parametern wie übergebenSolche Parameter schienen von den von mir getesteten 7z-Versionen nicht beachtet zu werden, aber Sie möchten sie möglicherweise weiter untersuchen oder den 7z-Code patchen, um sie ordnungsgemäß zu analysieren. Oder vielleicht soll es funktionieren und ist nur in den getesteten Builds defekt.
quelle
Stellen Sie das Feld "Auf Volume, Bytes aufteilen" auf die maximal zulässige Dateigröße des Servers ein (in Bytes, glaube ich, obwohl gängige Abkürzungen wie "KB" und "MB" akzeptiert werden). Wenn die ZIP-Datei diese Größe überschreitet, wird sie von 7-zip automatisch in mehrere Dateien aufgeteilt, z. B. integration_serviceLog.zip.001 , integration_serviceLog.zip.002 usw. (PK Zip hat dies vor langer Zeit verwendet, um ZIP-Dateien über mehrere Dateien zu verteilen Disketten.) Zum Entpacken müssen alle Dateien vorhanden sein. Verwenden Sie diese Option, anstatt sich um die absolut besten Komprimierungseinstellungen für einen bestimmten Satz von Dateien zu kümmern, da die besten Einstellungen für eine Datei für eine andere Datei unterschiedlich sein können und Sie dies nicht jedes Mal durchführen müssen möchten Protokolle kopieren.
quelle