Es gibt viele Komprimierungsalgorithmen und bzip2
einer der langsameren. Plain gzip
neigt in der Regel nicht viel schlechter Kompression deutlich schneller zu sein. Wenn Geschwindigkeit am wichtigsten ist, lzop
ist mein Favorit. Schlechte Komprimierung, aber ach so schnell.
Ich beschloss, ein bisschen Spaß zu haben und ein paar Algorithmen einschließlich ihrer parallelen Implementierungen zu vergleichen. Die Eingabedatei ist die Ausgabe des pg_dumpall
Befehls auf meiner Workstation, eine SQL-Datei mit 1913 MB. Die Hardware ist ein älterer Quad-Core i5. Die Zeiten sind Wanduhrzeiten nur der Kompression. Bei parallelen Implementierungen werden alle 4 Kerne verwendet. Tabelle sortiert nach Kompressionsgeschwindigkeit.
Algorithm Compressed size Compression Decompression
lzop 398MB 20.8% 4.2s 455.6MB/s 3.1s 617.3MB/s
lz4 416MB 21.7% 4.5s 424.2MB/s 1.6s 1181.3MB/s
brotli (q0) 307MB 16.1% 7.3s 262.1MB/s 4.9s 390.5MB/s
brotli (q1) 234MB 12.2% 8.7s 220.0MB/s 4.9s 390.5MB/s
zstd 266MB 13.9% 11.9s 161.1MB/s 3.5s 539.5MB/s
pigz (x4) 232MB 12.1% 13.1s 146.1MB/s 4.2s 455.6MB/s
gzip 232MB 12.1% 39.1s 48.9MB/s 9.2s 208.0MB/s
lbzip2 (x4) 188MB 9.9% 42.0s 45.6MB/s 13.2s 144.9MB/s
pbzip2 (x4) 189MB 9.9% 117.5s 16.3MB/s 20.1s 95.2MB/s
bzip2 189MB 9.9% 273.4s 7.0MB/s 42.8s 44.7MB/s
pixz (x4) 132MB 6.9% 456.3s 4.2MB/s 7.9s 242.2MB/s
xz 132MB 6.9% 1027.8s 1.9MB/s 17.3s 110.6MB/s
brotli (q11) 141MB 7.4% 4979.2s 0.4MB/s 3.6s 531.6MB/s
Wenn die 16 Kerne Ihres Servers im Leerlauf sind, sodass alle für die Komprimierung verwendet werden können, pbzip2
wird dies wahrscheinlich zu einer erheblichen Beschleunigung führen. Aber Sie brauchen noch mehr Geschwindigkeit und können ~ 20% größere Dateien tolerieren, gzip
ist wahrscheinlich die beste Wahl.
Update: Ich habe brotli
der Tabelle Ergebnisse hinzugefügt (siehe TOOGAMs Antwort). brotli
s Druckqualitätseinstellung eine sehr große Auswirkung auf Verdichtungsverhältnis und die Geschwindigkeit hat, so dass ich drei Einstellungen hinzugefügt ( q0
, q1
, und q11
). Die Standardeinstellung ist q11
, aber es ist extrem langsam und noch schlimmer als xz
. q1
sieht aber sehr gut aus; das gleiche Kompressionsverhältnis wie gzip
, aber 4-5 mal so schnell!
Update: Hinzugefügt lbzip2
(siehe gmathts Kommentar) und zstd
(Johnnys Kommentar) zur Tabelle und sortiert nach Kompressionsgeschwindigkeit. lbzip2
bringt die bzip2
Familie zurück ins Rennen, indem sie dreimal so schnell pbzip2
komprimiert wie mit einem hervorragenden Kompressionsverhältnis! zstd
sieht auch vernünftig aus, ist aber brotli (q1)
sowohl in der Übersetzung als auch in der Geschwindigkeit besser.
Meine ursprüngliche Schlussfolgerung, dass Plain gzip
die beste Wette ist, fängt an, fast albern auszusehen. Obwohl für die Allgegenwart, ist es immer noch nicht zu schlagen;)