Skip to content

docs(bench): what a streamed chunk actually costs on HTTP/1 (#179) - #191

Merged
EdmondDantes merged 4 commits into
mainfrom
h1-queue-measurement
Aug 21, 2026
Merged

docs(bench): what a streamed chunk actually costs on HTTP/1 (#179)#191
EdmondDantes merged 4 commits into
mainfrom
h1-queue-measurement

Conversation

@EdmondDantes

Copy link
Copy Markdown
Contributor

#179 rests on "three submits and up to three suspensions per chunk". Measured on
e246dcf with the release PHP at ABI 0.25, strace -f -c around
tests/perf/servers/server_stream.php, two runs per chunk size differing only in the
number of chunks so the difference divides out startup:

chunkchunks measuredwritevepoll_pwaitper chunk
4 KiB96096010091.00 writev, 1.05 waits
64 KiB4804805101.00 writev, 1.06 waits

One submit and one park per chunk, flat in the chunk size — a 64 KiB frame takes the
copy-free path and still leaves as one writev, because its three pieces are three slots.

So the premise is gone. What a queue could still remove is the park, and only by making
the write fire-and-forget — which is exactly what isWritable() and tryWrite() would
then have nothing honest to say about.

@github-actions

github-actionsBot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Coverage

Total lines: 82.13% → 82.20% (+0.07 pp)

FileBaselineCurrentΔTouched
src/core/http_connection.c75.39%75.67%+0.28 pp
src/http3/http3_listener.c77.93%78.53%+0.60 pp
src/http3/http3_packet.c85.22%90.43%+5.22 pp
src/websocket/ws_session.c89.67%90.22%+0.55 pp

@EdmondDantes
EdmondDantes merged commit b5828f1 into mainAug 21, 2026
8 checks passed
Sign up for freeto 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

@EdmondDantes