aiohttp
Flagship · Python · standard configuration · completeness 4/4
aiohttp 3.14 web server on uvloop, one forked worker per core sharing the port with SO_REUSEPORT. Routing through the aiohttp router, JSON through web.json_response, gzip through the built-in response compression.
Achievements
🥈 1 Silver. Top three of a field, taken in this entry's own league: the family composite, the same composite among entries written in the same language, and each test profile it is scored on. Every field is the one the badges publish, so a medal and a badge always say the same thing. How medals are awarded.
| Medal | Award | Field | Rank |
|---|---|---|---|
| 🥈 Silver | Within its language | Python · HTTP/1.1 | 2 of 9 |
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, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 39 of 71 | 2072 |
Every result
Alpha Round, 13 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| Connection | Baseline | 4,096 | 590,654 | 6.94ms | 13.00ms | 6254.9% | 573MiB |
| Connection | Pipelined | 4,096 | 1,071,731 | 60.92ms | 114.60ms | 6395.3% | 625MiB |
| Connection | Short-lived | 4,096 | 506,608 | 8.02ms | 129.90ms | 6541.3% | 555MiB |
| Concurrency | Async Delay | 32,000 | 538,785 | 58.80ms | 69.00ms | 6180.0% | 1.0GiB |
| Efficiency | Latency-10K | 1,024 | 9,982 | 178.3us | 287.0us | 121.9% | 536MiB |
| Efficiency | Latency-1M | 1,024 | 645,022 | 3010947.4us | 10342400.0us | 6485.8% | 538MiB |
| Efficiency | Latency-500K/8 | 1,024 | 102,971 | 7898055.2us | 15839232.0us | 764.0% | 138MiB |
| Workload | JSON Comp | 4,096 | 101,899 | 39.92ms | 249.60ms | 6348.5% | 1.7GiB |
| Workload | JSON Comp | 16,384 | 99,450 | 128.53ms | 2.77s | 6049.5% | 2.3GiB |
| Workload | JSON TLS | 4,096 | 240,408 | 16.77ms | 103.00ms | 6284.3% | 860MiB |
| Workload | 8Gbit | 512 | 49,381 | 219.7us | 434.0us | 770.4% | 625MiB |
| Workload | Static TLS | 1,024 | 82,563 | 12.35ms | 47.21ms | 6253.8% | 896MiB |
| Database | Async DB | 1,024 | 102,119 | 9.54ms | 52.20ms | 6127.2% | 668MiB |
Compared with
The Python entries around aiohttp on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs aiohttp | |
|---|---|---|---|
| fastpysgi-wsgi | 3148 | +52% | head to head |
| pyronova | 2404 | +16% | head to head |
| mq-bridge-py | 2219 | +7% | head to head |
| blackbull | 1658 | -20% | head to head |
| sanic | 1630 | -21% | head to head |
Compare aiohttp with any Python entry · Compare aiohttp with any entry, in any language · Every Python entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry