Wer dieses Blog schon länger mitverfolgt weiß, dass ich einen gewissen… Fetisch für Datenkompression habe. Meine Bilddateien optimiere ich, soweit das verlustfrei geht. Die über HTTP ausgelieferten Inhalte dieses Blogs werden schon seit Jahren als Zopfli-optimiertes gz ausgeliefert, seit zwei Jahren auch Brotli-komprimiert (letzteres hat nur mangels Unterstützung der nginx-Version in Debian so lange gedauert).
Deswegen war ich gestern ein bisschen überrascht, dass es schon seit zwei Jahren einen weiteren Kandidaten auf dem Markt für HTTP-Content-Encoding gibt: Zstandard. Gibt es schon seit dem vergangenen Jahrzehnt und seit 2024 auch bei Chromium-basierten Browsern und Firefox als Content-Encoding. Wie konnte mir das entgehen? Und was kann diese „neue“ Kompression?
Glücklicherweise habe ich unter anderem diesen Blogpost über den Vergleich von ZStandard mit anderen Verfahren gefunden. Der Autor hat einen Kompressions-Tester für Websites geschrieben und analysiert, wie ZStandard im Verhätlnis zu Klartext, gzip und Brotli abschneidet.
Long story short: ZStandard ist sehr gut dabei, wenn es um Geschwindigkeit geht, bleibt aber bei höheren Kompressionsraten weit hinter Brotli zurück. Mit anderen Worten: Wenn man, so wie ich für dieses Blog, die Dateien nicht on-the-fly sondern im Voraus kompromiert (und sich dementsprechend ein bisschen mehr Zeit leisten kann), dann ist Brotli nach wie vor die beste Wahl. ZStandard glänzt hingegen dort, wo es auf Kompressionsgeschwindigkeit ankommt, z.B. bei dynamischen Inhalten. Für dieses Blog nicht relevant, aber ich behalte das Mal im Hinterkopf.