Add webserver: loopback HTTP server under load - #105
Open
gbaraldi wants to merge 1 commit into
Open
Conversation
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>
oscardssmith
approved these changes
Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Starts an HTTP.jl server on
127.0.0.1and 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
garbagebenchmark 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'sProject.toml(same pattern as theTimeZonesbench). 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