Skip to main content
← Chronicles
2 min readFree ChronicleCurrent record

ZJX 1.30.0: Smaller Archives, Packed Faster

On the silesia corpus, ZJX 1.29.7 needed 223 seconds to write its smallest archive. ZJX 1.30.0 needs 107 seconds, and the archive it writes is 8.7% smaller.

That pairing is unusual. Compression tools usually trade one for the other: a smaller archive costs more time, and a faster run costs bytes. In 1.30.0 the compact and fast objectives got both at once, on every one of the five public corpora we measure.

compact

compact is the objective for when the archive's size matters most. Against 1.29.7:

CorpusArchive sizePacking
silesia8.66% smaller2.08x faster
Go 1.27.3 source code7.98% smaller2.14x faster
GH Archive, one day2.71% smaller4.09x faster
http_logs0.36% smaller3.44x faster
enwik80.25% smaller3.45x faster

The GH Archive day used to take 170 seconds in compact. It now takes 42.

fast

fast balances size against time, and it saw the single largest change in this release. On the Go 1.27.3 source code its archive is 25.7% smaller than 1.29.7's, it packs in 31.6 seconds instead of 65.9, and it restores in 0.65 seconds instead of 1.32.

CorpusArchive sizePackingRestore
Go 1.27.3 source code25.72% smaller2.09x faster2.03x faster
silesia8.02% smaller1.52x faster1.48x faster
GH Archive, one day2.71% smaller2.57x faster1.24x faster
http_logs0.36% smaller2.39x faster2.22x faster
enwik80.25% smaller2.13x faster1.15x faster

Restoring

In fast and ultrafast, every corpus restores faster than it did on 1.29.7. ultrafast writes the same archives as before and now restores them 1.4x to 2.1x faster: enwik8 comes back in 0.12 seconds, down from 0.23. In compact, the http_logs restore fell from 1.92 seconds to 0.91.

Every restore in these measurements was checked against the original content digest.

Same format

1.30.0 writes the same archive format as the 1.29 line. ZJX 1.29.7 restored every archive 1.30.0 produced in these tests, so archives can move between machines running either version.

How we measured

One laboratory host: an AMD Ryzen 3 7330U with 4 cores and 8 threads, running Ubuntu 24.04. Five public corpora: silesia, enwik8, one day of GH Archive, the Go 1.27.3 source code and the http_logs track. 1.29.7 and 1.30.0 ran in alternating order on each repetition, with warm caches and a filesystem sync after every operation. Packing figures are medians of three runs (thirty for ultrafast), restore figures medians of five.

The release history and the 1.30.0 results are on the ZJX site, and the 1.30.0 release record lists its checksums. ZJX Basic, the free desktop app, is at ZJX.app. The 1.30.0 package is provided on request, and a paid evaluation measures ZJX against your own data: explore ZJX.