Skip to content

Docs and benchmarks for 1.1: single-session Silesia table, graphs, fuzz in CI - #7

Merged
ValisSowilo merged 1 commit into
mainfrom
docs/1.1-refresh
Sep 26, 2026
Merged

ValisSowilo merged 1 commit into
mainfrom
docs/1.1-refresh

Conversation

@ValisSowilo

Copy link
Copy Markdown
Owner

Follow-up to #6: brings the docs and benchmarks in line with 1.1.

Benchmarks

  • Silesia preset table re-measured on 1.1 with scripts/bench_session.py (one interleaved session, sentinels at both ends).
    • The main run's opening sentinels read 26% slower than its closing ones, so the first three rows (-7, zpaq, -9) were measured under load.
    • Those three were re-run in a follow-up session bracketed by its own sentinels. They agree to 0.05% (-7) and 0.87% (zpaq), and match the main run's closing readings.
    • The discarded rows are kept in bench_session.json under discarded.
  • Every preset is smaller than 1.0.2, by −0.2% to −2.4%. -9 over the whole directory: 35,467,098.
  • -1 now beats lpaq1 on every axis: 0.90% smaller, 1.39× faster, 4 MB lighter.
  • -5 still beats zpaq -m5 on all three axes: 2.7% smaller, 1.75× faster, 43% less memory.
  • -9 is 1.18× zpaq's time here, against 1.07× in 1.0.2's session. A same-session A/B on mozilla (which the transform declines) shows 1.1 is 12% faster than 1.0.2 there, so this is session variance (§26), not the code. The docs say so.
  • enwik8 ladder re-measured. 1.1 now beats zpaq -m5 from -3 up; 1.0.2 only did at -7 and -9.
  • Graphs regenerated from the new data. bench_session.py gains --exe.

Docs

  • README, USAGE and dist/*.txt: tables, marginal exchange rates, memory notes and every derived claim recomputed from the data.
  • The "-7 → -9 is no worse than other steps" line is gone: in this session that step costs 19.4× per 1%, and the text now says so, with the cross-session caveat.

Tests

  • scripts/wfuzz.py: round-trip fuzz for the word transform. None of the other suites' inputs reach it: they top out at 70 KB, and the transform starts at 256 KB.
  • Added to CI on Linux, macOS and Windows, and under UBSan (the UBSan round trip's own input is 238 KB, just under the minimum).

Versions

  • Installer script, sign script, CI fallback and dist headers are now 1.1.0.
  • The README install guide no longer names a stale installer file.

…, versions

Silesia preset table re-measured on 1.1 with scripts/bench_session.py. The
main run's opening sentinels read 26% slow, so -7, zpaq and -9 were re-run in a
bracketed follow-up whose sentinels agree to 0.05% / 0.87%; the discarded rows
stay in bench_session.json. Every preset is smaller than 1.0.2 (-0.2% to -2.4%),
-9 whole-directory 35,467,098. -1 now beats lpaq1 on size, speed and memory;
-5 still beats zpaq -m5 on all three. enwik8 ladder re-measured: 1.1 beats
zpaq -m5 from -3 up (1.0.2: only -7 and -9).

README, USAGE, dist/*.txt: tables, exchange rates, memory notes and derived
claims regenerated from the data; graphs regenerated (mkgraphs, mkpresets,
mkcorpora). bench_session.py gains --exe.

scripts/wfuzz.py: round-trip fuzz for the word transform, which no other
suite's inputs are large enough to reach; added to CI on Linux, macOS,
Windows and under UBSan. SECURITY.md notes it and the -9 memory on text.

Version strings: installer, sign script, CI fallback and dist headers to
1.1.0; README install guide no longer names a stale installer file.
@ValisSowilo
ValisSowilo merged commit 52ae05b into main Sep 26, 2026
2 checks passed
@ValisSowilo
ValisSowilo deleted the docs/1.1-refresh branch September 26, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant