Skip to content

Add webserver: loopback HTTP server under load - #105

Open
gbaraldi wants to merge 1 commit into
mainfrom
add-http-webserver-benchmark
Open

Add webserver: loopback HTTP server under load#105
gbaraldi wants to merge 1 commit into
mainfrom
add-http-webserver-benchmark

Conversation

@gbaraldi

@gbaraldi gbaraldi commented Aug 4, 2026

Copy link
Copy Markdown
Member

Starts an HTTP.jl server on 127.0.0.1 and hammers it with 4 client tasks per thread (8000 requests total, same process). The handler builds a JSON-ish response per request and retains a fixed-size cache of response object graphs server-side, acting as an old generation.

Why it earns a slot in the suite: server workloads are the motivating case for concurrent-GC work (Go's garbage benchmark and Green Tea were both driven by them): many tasks, a high rate of short-lived request/response garbage (strings, buffers, headers), and long-lived state behind it. No existing benchmark in the suite is task-heavy and IO-bound.

Adds an HTTP = "1" dependency in the new category's Project.toml (same pattern as the TimeZones bench). Measured on Julia 1.12.6, 4 threads: ~6 s measured region, ~1.4 GB allocated, ~10% GC time.

Disclosure: this PR was written with the assistance of generative AI (Claude).

🤖 Generated with Claude Code

Start an HTTP.jl server on 127.0.0.1 and hammer it with 4 client tasks per
thread, with the handler building a JSON-ish response per request and
retaining a fixed-size cache of response objects as an old generation.

Server workloads are the motivating case for concurrent-GC work: many tasks,
a high rate of short-lived request/response garbage, and long-lived state
behind it. No existing benchmark in the suite is task-heavy and IO-bound.
8000 requests run in ~6s measured with ~10% GC time on 4 threads.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

2 participants