genhttp-kestrel
Emerging · C# · engine: kestrel · standard configuration
Lightweight, embeddable and modular C# web server.
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.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 8 of 71 | 567 |
| HTTP/2 | 8 of 16 | 55 |
| HTTP/3 | 4 of 6 | 57 |
Every result
Alpha Round, 29 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 | 512 | 1,044,040 | 489us | 2.06ms | 4866.7% | 202MiB |
| Connection | Baseline | 4,096 | 1,120,402 | 2.98ms | 9.34ms | 5467.5% | 346MiB |
| Connection | Pipelined | 512 | 3,133,552 | 2.61ms | 7.02ms | 5553.6% | 153MiB |
| Connection | Pipelined | 4,096 | 3,542,709 | 15.53ms | 39.60ms | 5930.5% | 295MiB |
| Connection | Short-lived | 512 | 439,883 | 1.16ms | 12.10ms | 3515.6% | 132MiB |
| Connection | Short-lived | 4,096 | 450,665 | 1.59ms | 12.70ms | 3646.8% | 146MiB |
| Workload | JSON | 4,096 | 589,491 | 5.03ms | 23.80ms | 5855.0% | 513MiB |
| Workload | JSON Comp | 512 | 387,505 | 1.31ms | 6.33ms | 5546.8% | 320MiB |
| Workload | JSON Comp | 4,096 | 376,291 | 8.05ms | 29.20ms | 5879.5% | 552MiB |
| Workload | JSON Comp | 16,384 | 375,702 | 14.53ms | 45.20ms | 5841.8% | 639MiB |
| Workload | JSON TLS | 4,096 | 513,804 | 9.35ms | - | 6103.7% | 814MiB |
| Workload | Upload | 32 | 1,267 | 25.24ms | 68.80ms | 6045.7% | 158MiB |
| Workload | Upload | 256 | 1,534 | 162.21ms | 822.10ms | 6390.3% | 322MiB |
| Workload | Static | 1,024 | 242,975 | 6.13ms | - | 5855.8% | 270MiB |
| Workload | Static | 4,096 | 231,233 | 19.64ms | - | 5918.9% | 497MiB |
| Workload | Static | 6,800 | 226,395 | 31.56ms | - | 5947.2% | 592MiB |
| Workload | Static TLS | 1,024 | 199,349 | 8.89ms | 64.22ms | 6200.9% | 602MiB |
| Workload | Static TLS | 4,096 | 188,161 | 30.21ms | 238.24ms | 6085.1% | 1.1GiB |
| Workload | Static TLS | 6,800 | 186,526 | 44.84ms | 249.17ms | 6146.5% | 1.5GiB |
| Database | Async DB | 1,024 | 165,159 | 5.65ms | 18.70ms | 3705.7% | 411MiB |
| Database | CRUD | 4,096 | 452,652 | 8.16ms | 29.00ms | 4735.0% | 617MiB |
| Multi-endpoint | API-4 | 256 | 43,632 | 4.33ms | 10.60ms | 372.3% | 141MiB |
| Multi-endpoint | API-16 | 1,024 | 110,447 | 7.53ms | 20.10ms | 1491.1% | 261MiB |
| HTTP/2 | Baseline | 256 | 1,792,309 | 14.00ms | - | 6233.3% | 1.2GiB |
| HTTP/2 | Baseline | 1,024 | 1,676,367 | 60.94ms | - | 5976.5% | 4.4GiB |
| HTTP/2 | Static | 256 | 161,502 | 47.82ms | - | 6210.9% | 714MiB |
| HTTP/2 | Static | 1,024 | 156,461 | 183.99ms | - | 6142.4% | 2.0GiB |
| HTTP/3 | Baseline | 64 | 627,428 | 5.90ms | 18.43ms | 6208.9% | 1.7GiB |
| HTTP/3 | Static | 64 | 110,183 | 36.05ms | 364.14ms | 6325.0% | 1.2GiB |
How the benchmark is run · The machine · Add or fix an entry