Skip to content

bench: register the HTTP/3 samples so their numbers survive - #174

Merged
MDA2AV merged 2 commits into
mainfrom
chore/register-h3-samples
Aug 10, 2026
Merged

bench: register the HTTP/3 samples so their numbers survive#174
MDA2AV merged 2 commits into
mainfrom
chore/register-h3-samples

Conversation

@MDA2AV

@MDA2AV MDA2AV commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Http3/Managed and Http3/Streamed were benchmarked all evening through throwaway shell loops. That is how a body-size mismatch (8 KiB against 13 bytes) and two h3x flag mistakes got into the record before being caught — and neither sample had a baseline, so nothing would have noticed them regressing afterwards.

Both are in bench/samples.tsv now. That file asserts full coverage of the Playground — 40 samples, 40 registered — so a sample nobody can benchmark shows up as a gap rather than as silence.

First run

2 reactors, 64 connections, 10s:

sample req/s cpu/req vs baseline
Http3/Nghttp3 480,371 4.17 µs +0.9%
Http3/Buffered 516,707 3.87 µs +3.2%
Http3/Managed 665,936 2.96 µs new
Http3/Streamed 89,906 22.03 µs new

The two pre-existing samples are unchanged within noise, which is the point of having them in there.

Http3/Streamed is registered with PLAYGROUND_CHUNKS=8 PLAYGROUND_CHUNK_BYTES=1024 so its cell measures a genuinely chunked response rather than a single-chunk one.

MDA2AV added 2 commits August 10, 2026 01:13
Http3/Managed and Http3/Streamed were benchmarked all evening through
throwaway shell loops, which is how a body-size mismatch and two h3x flag
mistakes got into the record before being caught. Neither had a baseline, so
nothing would have noticed them regressing.

Both are in bench/samples.tsv now, which asserts full coverage of the
Playground - 40 samples, 40 registered - so a sample nobody can benchmark
shows up as a gap rather than as silence.

First run, 2 reactors, 64 conns, 10s:

  Http3/Nghttp3    480371 req/s   4.17us   +0.9% vs baseline
  Http3/Buffered   516707 req/s   3.87us   +3.2%
  Http3/Managed    665936 req/s   2.96us   (new)
  Http3/Streamed    89906 req/s  22.03us   (new)

The two pre-existing samples are unchanged within noise, which is the point of
having them there.
Three panes had drifted or were missing. Http3/Nghttp3's pane went stale when
#171 gave that sample a body knob - the exact drift the generator exists to
prevent, and it only stayed hidden because nothing regenerates on merge.
Http3/Managed and Http3/Streamed had no pane at all, having been added the
same evening they were written.

All 40 samples are generated now. The only hand-written panes left are `vs`
and `pxmatrix`, which are prose comparisons with no sample to derive from.

Verified: tabs, labels, panes and CSS agree; both generators are idempotent;
the new panes compile standalone against the real packages.
@MDA2AV
MDA2AV merged commit dad999e into main Aug 10, 2026
1 check passed
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