HttpArena
Frameworks

sanic

Flagship · Python · tuned configuration

Sanic 25.3 on its own server with uvloop and httptools, one worker per core through the Sanic worker manager. Routing through the Sanic router, JSON through the ujson response, streamed uploads. Sanic ships no compression middleware, so gzip is hand-rolled in a response middleware, hence tuned.

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.169 of 97161

Every result

Alpha Round, 12 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline512593,133862us1.79ms6526.5%1.6GiB
ConnectionBaseline4,096611,7375.10ms6.42ms6380.3%1.6GiB
ConnectionPipelined5121,461,6705.34ms11.00ms6431.0%1.6GiB
ConnectionPipelined4,0961,372,14328.00ms50.70ms6346.4%1.6GiB
ConnectionShort-lived512509,963994us2.12ms6555.9%1.6GiB
ConnectionShort-lived4,096523,3662.13ms5.10ms6391.0%1.6GiB
WorkloadJSON4,096344,3405.49ms16.00ms6325.5%1.6GiB
WorkloadJSON Comp512172,2782.97ms6.84ms6457.6%1.6GiB
WorkloadJSON Comp4,096172,83612.26ms33.20ms6368.1%1.6GiB
WorkloadJSON Comp16,384169,30520.02ms95.10ms6065.9%1.7GiB
WorkloadUpload321,81417.57ms80.40ms2657.3%1.6GiB
WorkloadUpload2561,244197.43ms1.07s6234.2%1.8GiB

How the benchmark is run · The machine · Add or fix an entry