Skip to content

perf(blocking): send request bodies in 64 KiB chunks - #3125

Open
patrick-immometrica wants to merge 1 commit into
seanmonstar:masterfrom
patrick-immometrica:perf-blocking-upload-chunk
Open

patrick-immometrica wants to merge 1 commit into
seanmonstar:masterfrom
patrick-immometrica:perf-blocking-upload-chunk

Conversation

@patrick-immometrica

@patrick-immometrica patrick-immometrica commented Oct 24, 2026 •

Copy link
Copy Markdown

The blocking client sends a request body by reading it into an 8 KiB buffer and passing each chunk over a zero-capacity channel to the runtime thread. A large upload pays one thread handoff, one allocation and one zeroing per 8 KiB.

This raises the chunk size to 64 KiB, still capped by the body's length when that's known.

Uploading 256 MiB from Body::sized to a local server went from a median of about 1,170 ms (220 MiB/s) to 260 ms (980 MiB/s) over 7 runs.

The test posts a 200,000-byte body, sized and unsized, and checks that the server receives it byte-for-byte.

@patrick-immometrica
patrick-immometrica force-pushed the perf-blocking-upload-chunk branch from c42fd1e to 32927fd Compare October 24, 2026 23:29
@patrick-immometrica
patrick-immometrica marked this pull request as ready for review October 24, 2026 23: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