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:
| Corpus | Archive size | Packing |
|---|---|---|
| silesia | 8.66% smaller | 2.08x faster |
| Go 1.27.3 source code | 7.98% smaller | 2.14x faster |
| GH Archive, one day | 2.71% smaller | 4.09x faster |
| http_logs | 0.36% smaller | 3.44x faster |
| enwik8 | 0.25% smaller | 3.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.
| Corpus | Archive size | Packing | Restore |
|---|---|---|---|
| Go 1.27.3 source code | 25.72% smaller | 2.09x faster | 2.03x faster |
| silesia | 8.02% smaller | 1.52x faster | 1.48x faster |
| GH Archive, one day | 2.71% smaller | 2.57x faster | 1.24x faster |
| http_logs | 0.36% smaller | 2.39x faster | 2.22x faster |
| enwik8 | 0.25% smaller | 2.13x faster | 1.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.