genhttp-kestrel
Emerging · C# · engine: kestrel · standard configuration · completeness 4/4
Lightweight, embeddable and modular C# web server.
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 | C# · HTTP/3 | 2 of 5 |
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 | 19 of 72 | 3513 |
| HTTP/2 | 14 of 20 | 554 |
| HTTP/3 | 5 of 11 | 730 |
| WebSocket | 10 of 20 | 1129 |
Every result
Alpha Round, 26 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 | 1,320,289 | 2.71ms | 8.24ms | 5526.1% | 508MiB |
| Connection | Pipelined | 4,096 | 3,096,888 | 10.36ms | 323.50ms | 5862.7% | 440MiB |
| Connection | Short-lived | 4,096 | 476,779 | 1.34ms | 11.50ms | 2217.4% | 243MiB |
| Concurrency | Async Delay | 32,000 | 752,792 | 30.53ms | 62.90ms | 4421.5% | 2.4GiB |
| Efficiency | Latency-10K | 1,024 | 9,979 | 94.8us | 116.0us | 54.8% | 242MiB |
| Efficiency | Latency-1M | 1,024 | 997,450 | 852.5us | 5374.0us | 3381.7% | 312MiB |
| Efficiency | Latency-500K/8 | 1,024 | 290,214 | 4157347.8us | 8263680.0us | 740.5% | 254MiB |
| Workload | JSON Comp | 4,096 | 403,893 | 6.24ms | 25.60ms | 5900.5% | 571MiB |
| Workload | JSON Comp | 16,384 | 396,538 | 7.64ms | 28.90ms | 5793.8% | 674MiB |
| Workload | JSON TLS | 4,096 | 553,794 | 7.50ms | 82.54ms | 6111.0% | 999MiB |
| Workload | 8Gbit | 512 | 49,329 | 252.7us | 3743.0us | 617.6% | 298MiB |
| Database | Async DB | 1,024 | 181,002 | 5.03ms | 13.10ms | 3076.3% | 440MiB |
| HTTP/2 | Baseline | 256 | 2,125,970 | 11.71ms | 58.00ms | 6129.7% | 1.3GiB |
| HTTP/2 | Baseline | 1,024 | 2,041,949 | 49.95ms | 228.35ms | 5798.0% | 2.8GiB |
| HTTP/2 | Static | 256 | 260,689 | 31.57ms | 405.90ms | 5989.0% | 1.9GiB |
| HTTP/2 | Static | 1,024 | 265,919 | 120.92ms | 894.27ms | 6081.6% | 2.8GiB |
| HTTP/3 | Baseline | 64 | 611,110 | 6.01ms | 15.75ms | 6136.0% | 2.3GiB |
| HTTP/3 | Static | 64 | 159,878 | 28.67ms | 144.72ms | 5789.6% | 1.9GiB |
| WebSocket | Echo | 512 | 1,725,518 | 296us | 1.56ms | 5522.7% | 316MiB |
| WebSocket | Echo | 4,096 | 1,739,404 | 1.81ms | 5.75ms | 5916.4% | 509MiB |
| WebSocket | Echo | 16,384 | 1,776,404 | 1.64ms | 4.95ms | 5781.0% | 574MiB |
| WebSocket | Echo Pipelined | 512 | 22,181,059 | 368us | 2.24ms | 5296.9% | 277MiB |
| WebSocket | Echo Pipelined | 4,096 | 22,311,033 | 1.40ms | 5.27ms | 5385.8% | 500MiB |
| WebSocket | Echo Pipelined | 16,384 | 20,602,550 | 3.00ms | 9.84ms | 5543.6% | 507MiB |
| WebSocket | Echo Short-lived | 512 | 472,325 | 78us | 317us | 2318.2% | 255MiB |
| WebSocket | Echo Short-lived | 4,096 | 463,193 | 87us | 404us | 2240.0% | 271MiB |
Compared with
The C# entries around genhttp-kestrel on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs genhttp-kestrel | |
|---|---|---|---|
| genhttp-ioxide | 7006 | +99% | head to head |
| sockets | 4079 | +16% | head to head |
| minima-sync | 3780 | +8% | head to head |
| carter | 3454 | -2% | head to head |
| aspnet-minimal-11 | 3205 | -9% | head to head |
Compare genhttp-kestrel with any C# entry · Compare genhttp-kestrel with any entry, in any language · Every C# entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry