Unterschied zwischen pixz und xz mit Option -T

3629
Dertalai

Ich versuche, 100 GB mit einem guten Verhältnis zu komprimieren, also entschied ich mich für xz. Ich brauche es nicht, um sehr schnell zu sein, aber da ich eine 8-Thread-CPU habe, habe ich mich gefragt, wie ich sie nutzen kann.

Ich habe festgestellt, dass es eine parallele Implementierung von xz: pixz gibt. Ich fand auch, dass xz eine Multithread-Option -T hat. Ich experimentiere mit beiden, aber ich sehe keinen Unterschied in ihrem Verhalten.

Was ist der Unterschied zwischen ihnen? Warum gibt es 2 parallele Implementierungen für xz?

Edit: Ich habe da noch einen gefunden: pxz.

3
Welchen Unterschied haben Sie geprüft? Komprimierte Dateigröße oder Kompressionszeit? Ich denke, pixz wurde gestartet, bevor xz eine parallele Variante implementierte. PS: try [lrzip by kolivas] (http://ck.kolivas.org/apps/lrzip/), es kann doppelte Teile der Datei finden und besser komprimieren. osgx vor 9 Jahren 1
Ich wunderte mich über Größe und Zeit. Vielleicht war jeder für unterschiedliche Umstände optimiert, z. B. die Verfügbarkeit von freiem Speicher, die Anzahl der Prozessoren und so ... Vielen Dank für den lrzip-Hinweis, den ich nicht kannte. Dertalai vor 9 Jahren 0

1 Antwort auf die Frage

16
vasi

Ich bin der Autor von Pixz. Wie oben spekuliert, habe ich pixz geschrieben, bevor xz durch Threading unterstützt wurde. Ich mag es zu glauben, dass pixz Lasse Collin dazu verleitet, Xz früher mit Multi-Threading-Unterstützung zu unterstützen.

Natürlich gibt es immer noch einige Unterschiede zwischen pixz und xz. Zugunsten von xz:

  • Es hat weit mehr Möglichkeiten
  • Es wurde von viel mehr Leuten getestet
  • Wahrscheinlich hat es eine bessere Codequalität - pixz ist ein Prototyp, der zügellos vorüber ist;)

Es gibt jedoch noch einige Gründe, warum ich pixz gerne nutze:

  • Es ist viel kleiner und leichter zu verstehen
  • Es unterstützt Multi-Thread - de - Komprimierung, die xz nicht
  • Bei Tarballs hat es ein besonderes Verhalten: Während der Komprimierung erstellt es auch einen Index aller Dateien im Tarball. Dadurch kann eine einzelne Datei schnell extrahiert werden, auch wenn der Tarball sehr groß ist.
Ich habe noch nie von "pixz" gehört, wollte es jetzt aber nur noch für den letzten Punkt verwenden Mark K Cowan vor 7 Jahren 1
Ist das pixz-Format mit aktiviertem Index mit dem klassischen xz-Tool kompatibel? Wie wird die Eingabedatei partitioniert, wenn sie parallel komprimiert wird? osgx vor 7 Jahren 0
Das Pixz-Format ist mit XZ kompatibel. Wenn pixz einen Index hinzufügt, ändert sich die Ausgabe nach der Dekomprimierung mit xz geringfügig. Die einzige Änderung wird jedoch nach der End-Of-Archive-Markierung von tar und daher von tar ignoriert. Wenn Sie keinen Index wünschen, können Sie ihn mit der Option '-t' deaktivieren. vasi vor 7 Jahren 1
Das Aufteilen der Eingabedatei in Blöcke basiert auf: * Die Größe des xz-Wörterbuchs, die vom Komprimierungsgrad abhängt. Bei der Standardeinstellung von '-6' sind es 8 MiB. Weitere Informationen finden Sie in der [xz-Manpage] (https://www.freebsd.org/cgi/man.cgi?query=xz&sektion=1&manpath=FreeBSD+8.3-RELEASE). * Ein Multiplikator mit der Option '-f'. Der Standardwert ist 2.0. Die voreingestellte Blockgröße beträgt daher 16 MiB. Wenn Sie mehr über pixz erfahren möchten, lesen Sie bitte [the docs] (https://github.com/vasi/pixz/blob/master/src/pixz.1.asciidoc). vasi vor 7 Jahren 2