Thanks for taking a look! I haven’t included any benchmarks in the repository (to avoid discussions focusing excessively on benchmarks that don’t reflect realistic or practical scenarios, rather than on other compelling features that have a greater impact in real-world use).
That said, it should be very fast across the board.
FWIW on my M1 Pro MacBook, if I run Itsi with a *single* worker and *single thread* (e.g. `itsi -w 1 -t 1`) I see these figures:
A hello world Rack app
E.g. ->(env){[200, {}, ["hello world"]]}
Runs at approximately 100,000 requests per second using
wrk http://localhost:3000 -c 60
A simple endpoint
E.g. get "/" do |req|
req.ok "Hello World"
end
Runs at approximately 115,000 requests per second
wrk http://localhost:3000 -c 60
Static file serving of small files (no compression) approaches 150K rps.
In essence, it should easily be fast enough that it's very unlikely that HTTP server performance is going to be the bottleneck in your workload except for the most extreme workloads.
All these numbers can increase further as you increase worker count. (There's many performance tuning knobs to twiddle)