Skip to content

Site: three Hyperfly rows, each adding one thing - #15

Merged
eliahilse merged 1 commit into
mainfrom
ui-rows
Aug 20, 2026
Merged

Site: three Hyperfly rows, each adding one thing#15
eliahilse merged 1 commit into
mainfrom
ui-rows

Conversation

@eliahilse

Copy link
Copy Markdown
Owner

Relabels the benchmark rows per request:

row what it is
Hyperfly schema-compiled columnar layout, nothing else
Hyperfly + Brotli the same, with generic compression on top
Hyperfly Profiled plus a dictionary trained on the route's own traffic (brotli included)

The middle row is new. The site previously went from bare layout straight to the full stack, which hid which of the two later stages was actually doing the work — and the answer varies enough per route to be the interesting part:

route Hyperfly + Brotli Profiled
events 2,109 2,054 823
devices 896 818 638
feed 1,908 1,902 1,535
candles 496 372 372
orders 271 273 188

On events Brotli removes 55 bytes and the profile removes 1,231 — that gap is the argument for training, since a compressor sees one response and rediscovers the recurring user agents every time. On orders Brotli costs two bytes. On candles the last two rows are byte-identical because that route's only string sits outside the array, so there is no column to key on. All three left visible.

Bench harness now measures columnar+brotli too, so the site numbers stay reproducible from bun run bench.

🤖 Generated with Claude Code

Relabels the benchmark rows so the progression is legible rather than implied:
Hyperfly is the schema-compiled layout alone, Hyperfly + Brotli puts generic
compression on top of it, and Hyperfly Profiled adds a dictionary trained on
the route's own traffic. The middle row is new — the site previously jumped
from bare layout to the full stack, which hid which of the two later stages was
doing the work.

It turns out to be worth showing. On events Brotli takes 55 bytes off the
columnar output and the profile takes 1 231, which is the whole argument for
training: a compressor sees one response and has to rediscover the recurring
user agents every time. On orders Brotli costs two bytes rather than saving
any, and on candles the last two rows are identical to the byte because that
route has no string column for a dictionary to key on. All three are left
visible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_hf1
@eliahilse
eliahilse merged commit ccef4ac into main Aug 20, 2026
7 checks passed
@eliahilse
eliahilse deleted the ui-rows branch August 20, 2026 16:54
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