24 Punkte von xguru 2026-02-13 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Entwickelt, um Engpässe bei der Leseleistung in der Content-Bereitstellung und in Embedded-Systemen zu beseitigen
  • Ausgelegt auf eine Struktur vom Typ einmal komprimieren, vielfach dekomprimieren (Read-Many), bei der der Encoder die Komplexität übernimmt und der Decoder auf maximalen Durchsatz optimiert ist
  • Gegenüber LZ4 über 40 % höhere Dekodiergeschwindigkeit (Apple Silicon), über 20 % schneller (Google Axion, ein ARM-Chip für die Cloud) und auch auf x86_64 über 5 % schneller
  • Offiziell in den lzbench-Master-Branch integriert und damit nun unabhängig über einen Standard-Benchmark verifizierbar
  • Auf asymmetrische Effizienz (Asymmetric Efficiency) ausgelegte Architektur, die den Kompromiss zwischen der symmetrischen Geschwindigkeit (LZ4) und der Komprimierungseffizienz (Zstd) bestehender Codecs auflöst
    • Der Encoder erzeugt einen Bitstream, der auf die CPU-Architektur (insbesondere ARMv8) zugeschnitten ist, um Instruction-Pipeline und Branch-Prediction zu optimieren
    • Der Decoder ist vereinfacht und auf maximalen Laufzeitdurchsatz ausgelegt
  • Benchmarks:
    • Auf einem Apple M2 erreicht ZXC gegenüber LZ4 bis zu 1,9-fach schnellere Dekodierung und gegenüber Zstd 2,7-fach höheren Durchsatz
    • Auch auf Google Axion (ARM Neoverse V2) bleibt die 1,6- bis 2,5-fach schnellere Dekomprimierung erhalten
    • In x86_64-Umgebungen (AMD EPYC) werden ebenfalls bis zu 2,2-fach schnellere Dekodierleistungen erzielt
  • Besteht aus 5 Komprimierungsstufen
    • Level 1–2 (schnell): für Echtzeit-Assets wie Spiele/UI, etwa 40 % schnelleres Laden als LZ4
    • Level 3–4 (ausgewogen): Balance zwischen Geschwindigkeit und Ratio
    • Level 5 (kompakt): für Firmware und Embedded, schneller als Zstd und mit höherer Komprimierungsrate als LZ4
  • API- und CLI-Unterstützung
    • CLI: Befehle für manuelle Asset-Komprimierung und Benchmarks (zxc -z, zxc -d, zxc -b)
    • API: vollständig thread-sichere (stateless) Struktur mit bindungsfreundlicher API
    • Streaming-API: unterstützt parallele Verarbeitung großer Dateien, einschließlich automatischer Thread-Erkennung und Checksum-Prüfung
    • Als Sans-IO-Architektur entworfen, sodass sprachspezifische I/O-Treiber direkt implementiert werden können (auf Basis von zxc_sans_io.h)
  • Qualität und Stabilität sichergestellt
    • Kontinuierliches Fuzzing (ClusterFuzzLite)
    • Statische Analyse (CPPChecker, Clang)
    • Dynamische Verifikation (Valgrind, ASan/UBSan)
    • Sichere API-Struktur, die bei allen Operationen eine explizite Angabe der Pufferkapazität verlangt
  • BSD 3-Clause License

Noch keine Kommentare.

Noch keine Kommentare.