Benchmarks

Every comparison, exact figures.

The public, reproducible benchmark, the release-note size comparison, both REDLINE speed campaigns, and how every figure was derived and verified.

Public benchmark

ZJX Basic 1.0.3 on the public http_logs-181998 corpus: 363,512,754 bytes of real web-server access logs from the public Elastic Rally http_logs corpus, one JSON record per line.

Result
The smallest archive of all 15 settings measured: 12,158,244 bytes, 18.6% smaller than xz -9e (14,930,844 bytes)
Speed
Fast mode compressed in 268.05 s against 638.34 s for xz -9e: 2.4x faster
Verification
Every archive was restored and checked byte-for-byte by SHA-256.
Reproduce
The build is a free download and the corpus is public with a pinned SHA-256. Commands, machine, raw results, and a one-command reproduction script: GreyforgeLabs/zjx-benchmarks

All configurations

Complete archive bytes on the 342,409,609-byte service telemetry capture, measured 2026-09-06
ConfigurationArchive bytesDecimal MBCompared with ZJX compactCompletion and restore check
ZJX 1.29.0 fast4,412,9844.41 MBZJX compact is same sizecompleted, restored and matched
zpaq -m57,125,6747.13 MBZJX is 38.1% smaller (strongest comparator)completed, restored and matched
zstd --ultra -22 --long=31 (tar)7,280,1107.28 MBZJX is 39.4% smallercompleted, restored and matched
brotli -q 11 (tar)7,345,5387.35 MBZJX is 39.9% smallercompleted, restored and matched
xz -9e (tar)7,612,0527.61 MBZJX is 42.0% smallercompleted, restored and matched
zstd -19 --long=31 (tar)7,800,3287.80 MBZJX is 43.4% smallercompleted, restored and matched
zstd -19 (tar)8,149,0508.15 MBZJX is 45.8% smallercompleted, restored and matched
7-Zip LZMA2 -mx=9, single thread9,392,5189.39 MBZJX is 53.0% smallercompleted, restored and matched
7-Zip LZMA2 -mx=99,666,9629.67 MBZJX is 54.3% smallercompleted, restored and matched
RAR5 -m59,842,9209.84 MBZJX is 55.2% smallercompleted, restored and matched
7-Zip PPMd -mx=912,612,27012.61 MBZJX is 65.0% smallercompleted, restored and matched
bzip2 -9 (tar)34,456,46834.46 MBZJX is 87.2% smallercompleted, restored and matched
gzip -9 (tar)40,176,03140.18 MBZJX is 89.0% smallercompleted, restored and matched
zip -9 (deflate)40,176,33440.18 MBZJX is 89.0% smallercompleted, restored and matched
lz4 -12 (tar)56,999,95857.00 MBZJX is 92.3% smallercompleted, restored and matched

The strongest comparator is the smallest completed and verified non-ZJX archive. Percentages are 100 × (1 − ZJX bytes ÷ comparator bytes).

Every row on one scale

A linear axis from zero to the largest archive, 57.00 MB. No row is rescaled, truncated, or omitted.

  1. ZJX 1.29.0 compact4,412,984
  2. ZJX 1.29.0 fast4,412,984
  3. zpaq -m57,125,674
  4. zstd --ultra -22 --long=31 (tar)7,280,110
  5. brotli -q 11 (tar)7,345,538
  6. xz -9e (tar)7,612,052
  7. zstd -19 --long=31 (tar)7,800,328
  8. zstd -19 (tar)8,149,050
  9. 7-Zip LZMA2 -mx=9, single thread9,392,518
  10. 7-Zip LZMA2 -mx=99,666,962
  11. RAR5 -m59,842,920
  12. 7-Zip PPMd -mx=912,612,270
  13. bzip2 -9 (tar)34,456,468
  14. gzip -9 (tar)40,176,031
  15. zip -9 (deflate)40,176,334
  16. lz4 -12 (tar)56,999,958

Derivation

Exact bytes are the stored facts; percentages and megabytes are derived at build time and in the browser from the same module, so every surface rounds the same way.

signed_reduction_percent = 100 × (1 − Z / C)   with comparator bytes C > 0
raw_reduction_percent    = 100 × (1 − Z / R)   with raw input bytes R > 0
MB = bytes / 1,000,000

Featured values: Z = 4,412,984, C = 7,125,674, R = 342,409,609. Result: 38.1% against the comparator, 98.7% against raw input. Nothing is calculated from rounded megabyte strings.

Creation time

ZJX fast wrote the smallest archive and finished ahead of these comparator configurations. Single sequential runs on the quiesced ZJX laboratory host; ZJX speed is qualified in the REDLINE campaigns below.

Creation wall time on the 342,409,609-byte service telemetry capture: ZJX fast and the comparator configurations it outpaced
ConfigurationArchive bytesCreation wall s
zpaq -m57,125,674199.2
zstd --ultra -22 --long=31 (tar)7,280,110460.4
brotli -q 11 (tar)7,345,538293.2
xz -9e (tar)7,612,052350.3

REDLINE verified-creation campaigns

Verified creation: archive creation plus an independent integrity check, 12 paired rounds per campaign, class-weighted geometric mean of per-round ratios, 95% bootstrap intervals. Subject: ZJX 1.29.0 ultrafast objective, four workers, then an independent test. Comparator: tar | zstd -1 (default, single admitted thread), verified by zstd -t. Host: Dedicated, quiesced laboratory host, 8 logical CPUs; the measured executable is the one shipped in the released package. A ratio is comparator time over ZJX time, so a value above 1 means ZJX was faster. The two campaigns measured different cohorts and each is reported on its own.

Development cohort

Sealed development cohort: silesia, enwik8, and a synthetic deduplication case; 12 paired rounds, 468 of 468 cells usable.

1.247x the verified-creation speed of default tar | zstd -195% [1.223, 1.267]; Bonferroni over the three preregistered primary comparisons, lower bound 1.221

Against default tar | zstd -1

  1. ZJX 1.29.0: ultrafast, four workers1.247x, faster
  2. tar | zstd -1, default1.00, the reference

Primary comparison: 95% [1.223, 1.267], Bonferroni-adjusted lower bound 1.221.

Held-out cohort (one shot)

Four sealed members plus six privately held-out cases (about 1.86 GB, six workload classes) selected by a rule frozen before any measurement; ten classes, 12 paired rounds, 360 of 360 cells usable, run once. Held out and unseen at the freeze, measured once against the unchanged package.

1.1959x the verified-creation speed of default tar | zstd -195% [1.1867, 1.2043]; 6 of 6 held-out cases restored exactly before the timed rounds

Against default tar | zstd -1

  1. ZJX 1.29.0: ultrafast, four workers1.1959x, faster
  2. tar | zstd -1, default1.00, the reference

Reported lane: 95% [1.1867, 1.2043]. Per-case results reach 1.972x on silesia (public).

Development cohort: worker settings

Sealed development cohort: silesia, enwik8, and a synthetic deduplication case; 12 paired rounds, 468 of 468 cells usable. Archive bytes were identical at every worker count and byte-identical to both earlier pre-release builds. The qualified ultrafast configuration with four workers admits about 65 MiB with the default settings and four workers (peak about 71 MB at four workers).

ZJX 1.29.0 ultrafast against default tar | zstd -1 at the worker settings where ZJX led, paired per-round ratios (comparator over ZJX)
ZJX settingRatio95% bootstrapReading
--workers 21.062x[1.046, 1.077]ZJX faster
qualified configuration (ultrafast, four workers)1.247x[1.223, 1.267]ZJX faster
--workers 4, explicit1.261x[1.242, 1.282]ZJX faster

Four workers is the sweet spot: it beats one, two, and eight workers, on this development cohort.

Held-out cohort: per-case results

Four sealed members plus six privately held-out cases (about 1.86 GB, six workload classes) selected by a rule frozen before any measurement; ten classes, 12 paired rounds, 360 of 360 cells usable, run once. The six held-out cases were selected by a written eligibility rule and a deterministic hash before any compressor touched them, frozen with a manifest, and measured once against the unchanged package; 6 of 6 held-out cases restored exactly before the timed rounds. They are described here by workload class and size only. Each ratio compares ZJX ultrafast with four workers against tar | zstd -1 (default, single admitted thread), verified by zstd -t.

Held-out campaign: the cases where ZJX led default tar | zstd -1, per-case medians as paired ratios (comparator over ZJX), 12 rounds
CaseStatusClassInput bytesvs default tar | zstd -1
Production service telemetry capture, a later day than the sealed oneheld outstructured records821,029,7631.820x faster
Application logheld outapplication logs195,392,1091.402x faster
Agent session traceheld outagent traces84,846,0901.139x faster
Repository working tree, 24,997 filesheld outmixed repository575,334,2501.052x faster
Service telemetry capture, 2026-06-03sealedservice telemetry342,409,6091.564x faster
enwik8 (public)sealedbulk text100,000,0001.785x faster
silesia (public)sealedpublic mixed211,938,5801.972x faster

Every REDLINE product gate passed on the published package, including the preregistered held-out gate.

Public release record · REDLINE source note · Release Chronicle · The 1.29 support contract

1.30.0 against 1.29.7

Up to 25.7% smaller archives and up to 4.1x faster packing than 1.29.7, on five public corpora and one laboratory host, AMD Ryzen 3 7330U, 4 cores / 8 threads, Ubuntu 24.04. Medians; the two versions ran in alternating order on each repetition, packing three times (ultrafast thirty) and restoring five times, and every restore was checked against the content digest. Ratios are 1.29.7's time over 1.30.0's.

compact: archive size and packing time
CorpusArchivePacking
silesia8.66% smaller2.08x faster (222.9 s to 107.3 s)
Go 1.27.3 source code7.98% smaller2.14x faster (172.4 s to 80.7 s)
GH Archive, one day2.71% smaller4.09x faster (170.3 s to 41.6 s)
http_logs0.36% smaller3.44x faster (367.6 s to 107.0 s)
enwik80.25% smaller3.45x faster (295.9 s to 85.7 s)
fast: archive size, packing and restore time
CorpusArchivePackingRestore
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

ultrafast: 1.42x to 2.10x faster restores on all five corpora, with the same archives as 1.29.7. 1.29.7 restored every archive 1.30.0 wrote in these measurements. The 1.30.0 release · Public release record · Release Chronicle (free)

Results since 1.29.0

Each point release of the 1.29 line was qualified against the release before it on one laboratory host, AMD Ryzen 3 7330U, 4 cores / 8 threads, Linux. Ratios are the earlier version's time over the later version's, so a value above one is faster. Outcome figures only; every result restored exactly.

The 1.29 line since 1.29.0, one laboratory host
ReleaseHeadline resultScope
1.29.5 GRIDMIND (2026-09-24)1.36x faster verified creation and 1.24x less CPU than 1.29.0; 2.29x from using the machine's coresAggregate over 8 corpora and 6 CPU placements (48 cells) against released 1.29.0 ultrafast; archive bytes unchanged
1.29.6 IRONFLOOR (2026-10-06)1.74x faster verified creation than 1.29.0 (1.20x in the slowest cell), 1.50x less CPU, 3.27x lower peak memoryFaster than 1.29.0 in every measured cell (48 primary cells plus sealed and fresh holdout tiers) with byte-identical archives
1.29.6.5 SIGHTLINE (2026-10-08)1.14x to 12.80x faster verified creation for the fast objective on already-compressed media, archive size within +1% of 1.29.6The fast objective on already-compressed media; every other archive byte-identical to 1.29.6
1.29.6.6 (2026-10-12)Reliability for JSON-lines dataA reliability release for JSON-lines data; every other archive byte-identical to 1.29.6.5, with creation and verification times unchanged
1.29.7 (2026-10-19)1.08x to 2.00x less extraction CPU than 1.29.6.5Lighter restores: extraction used 1.08x to 2.00x less CPU than 1.29.6.5 in every measured extraction cell, with identical output; qualified and first distributed inside 1.30.0

The REDLINE campaigns above compare 1.29.0 with tar | zstd and remain the line's external speed reference; they were not rerun for the point releases. Every release · The 1.29 line Chronicle (free)

How to read a measurement

Start with the version, dataset, settings, and comparison target. Then ask which operation was measured, whether every comparator completed, and exactly what was verified. Complete archive size includes format overhead; comparing it with raw input answers a different question from comparing it with another compressed archive, and the second question is the one that prices a migration.

  • Creation time: elapsed time to make an archive. Less time is not the same percentage as increased speed. Qualified timings come from a dedicated controlled host.
  • Memory: peak RSS is observed process memory. Configured limits and reserved memory are separate quantities.
  • Restoration: archive integrity testing, exact source comparison, and metadata comparison must be named separately.
  • Money: multiply the size advantage by eligible retained bytes and the storage rate you actually pay, then subtract compute, temporary space, migration, licensing, and restoration cost. The savings page does the first step only.

Missing measurements are Not reported, never zero.

Historical records

Earlier results from before the current campaign format, listed for lineage. Some compare with raw input rather than a competitor archive.

Previous campaign on the same input

ZJX 1.27 CIPHERGLASS (2026-09-05, development host) wrote 4,412,968 bytes for the compact objective against the same 7,125,674-byte strongest comparator. The 1.28.0 archive adds exactly 16 bytes: the manifest-integrity footer 1.28 LOCKWIRE adds to every archive. Previous campaign source note

Size records before 1.25.1 NIGHTMARKET

Historical size records: bytes
DatasetInputZJX archiveComparator archive
Service telemetry (the release-note capture, earlier build)342,409,6094,412,9687,125,674
Combined service telemetry1,256,880,59021,881,73925,717,553
Generated compact JSONL1,107,297,28813,088,37156,367,866
Generated sharded NDJSON256,002,0482,451,1233,976,428
Generated workflow artifacts10,655,25227,126186,018

Earlier ZJX builds, listed for lineage. Historical source note, updated 2026-08-22

Raw-input example: Silesia v1, ZJX 1.21 STREAMWALL

Twelve files from a public benchmark collection, compared with the uncompressed input rather than a competitor archive. The 2026-08-30 record reports integrity testing and exact extraction under a 1 GiB host ceiling, 768 MiB ZJX memory ceiling, and 64 GiB temporary-disk ceiling.

Silesia v1: complete archive bytes, ZJX 1.21 STREAMWALL
QuantityExact bytesDecimal MB
Uncompressed input211,938,580211.938580
Complete ZJX archive52,997,29952.997299

The reduction is 100 × (1 − 52,997,299 / 211,938,580) = 74.994%, rounded to 75.0%. Original source note, archive digest, and conditions

Release-to-release measurements

1.25.1 NIGHTMARKET (Fast versus Compact on four corpora) and 1.26 RELICWIRE (1.26 versus 1.25.1 creation time on two corpora) are release-to-release results, not competitor comparisons. They are summarized with their scope on the releases page. The REDLINE predecessor gate (ultrafast against released 1.28.0 fast: a creation ratio of 335x and a verified-creation ratio of 253x on the four-member cohort at the diagnostic tier) compares two objectives with different goals within ZJX.

Sources

The evaluation report includes the commands for your data. Commercial evaluation