aspnet-minimal
Flagship · C# · engine: kestrel · standard configuration
Minimal ASP.NET Core server using .NET 10 with Kestrel and minimal API routing.
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 | 10 of 71 | 550 |
| HTTP/2 | 3 of 16 | 134 |
| HTTP/3 | 3 of 6 | 61 |
| gRPC | 1 of 5 | 309 |
| WebSocket | 8 of 20 | 74 |
Every result
Alpha Round, 47 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,252,267 | 408us | 1.95ms | 5099.8% | 249MiB |
| Connection | Baseline | 4,096 | 1,279,817 | 2.75ms | 8.65ms | 5503.3% | 352MiB |
| Connection | Pipelined | 512 | 6,735,398 | 1.21ms | 4.84ms | 5067.1% | 174MiB |
| Connection | Pipelined | 4,096 | 7,049,780 | 7.87ms | 20.90ms | 5633.6% | 346MiB |
| Connection | Short-lived | 512 | 455,768 | 1.10ms | 11.70ms | 3427.8% | 146MiB |
| Connection | Short-lived | 4,096 | 461,367 | 1.44ms | 12.30ms | 3388.6% | 153MiB |
| Workload | JSON | 4,096 | 568,890 | 4.65ms | 22.00ms | 5805.2% | 561MiB |
| Workload | JSON Comp | 512 | 333,327 | 1.51ms | 6.71ms | 5327.5% | 244MiB |
| Workload | JSON Comp | 4,096 | 335,330 | 9.61ms | 37.60ms | 5909.3% | 581MiB |
| Workload | JSON Comp | 16,384 | 335,277 | 20.36ms | 61.70ms | 6094.4% | 661MiB |
| Workload | JSON TLS | 4,096 | 505,617 | 8.32ms | 104.21ms | 6048.0% | 805MiB |
| Workload | Upload | 32 | 1,298 | 24.78ms | 80.30ms | 6083.9% | 165MiB |
| Workload | Upload | 256 | 1,541 | 161.46ms | 767.40ms | 6428.0% | 334MiB |
| Workload | Static | 1,024 | 354,825 | 3.01ms | 26.00ms | 5200.5% | 262MiB |
| Workload | Static | 4,096 | 349,970 | 11.71ms | 449.49ms | 5889.0% | 482MiB |
| Workload | Static | 6,800 | 340,804 | 20.80ms | 881.70ms | 6064.4% | 560MiB |
| Workload | Static TLS | 1,024 | 243,329 | 4.36ms | 35.58ms | 5212.8% | 462MiB |
| Workload | Static TLS | 4,096 | 255,222 | 16.09ms | 132.88ms | 6065.0% | 922MiB |
| Workload | Static TLS | 6,800 | 251,639 | 27.35ms | 338.12ms | 6195.6% | 1.2GiB |
| Database | Async DB | 1,024 | 163,310 | 5.66ms | 18.60ms | 3625.6% | 414MiB |
| Database | CRUD | 4,096 | 393,113 | 9.40ms | 25.90ms | 5585.1% | 436MiB |
| Database | Fortunes | 1,024 | 75,539 | 11.36ms | 33.60ms | 5496.7% | 460MiB |
| Multi-endpoint | API-4 | 256 | 37,186 | 4.83ms | 12.30ms | 390.9% | 140MiB |
| Multi-endpoint | API-16 | 1,024 | 112,527 | 6.67ms | 19.00ms | 1501.5% | 254MiB |
| HTTP/2 | Baseline | 256 | 2,202,291 | 11.49ms | 78.02ms | 6088.2% | 1.0GiB |
| HTTP/2 | Baseline | 1,024 | 2,083,365 | 50.72ms | 319.41ms | 5883.1% | 3.8GiB |
| HTTP/2 | Static | 256 | 184,837 | 43.65ms | 245.59ms | 5889.5% | 933MiB |
| HTTP/2 | Static | 1,024 | 123,587 | 252.14ms | 1.32s | 5845.2% | 2.9GiB |
| HTTP/2 | Baseline (h2c) | 256 | 2,684,246 | 9.75ms | 60.80ms | 6240.9% | 1.0GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 2,454,077 | 43.84ms | 310.39ms | 5967.7% | 4.5GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 1,280,412 | 178.40ms | 884.79ms | 5313.2% | 7.8GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 690,439 | 47.73ms | 282.09ms | 6158.8% | 1.5GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 595,760 | 164.52ms | 1.47s | 5930.0% | 5.2GiB |
| HTTP/3 | Baseline | 64 | 626,288 | 5.87ms | 22.32ms | 6087.5% | 1.2GiB |
| HTTP/3 | Static | 64 | 120,521 | 33.88ms | 154.00ms | 4867.5% | 1.9GiB |
| gRPC | Unary | 256 | 2,491,232 | 10.56ms | 10.56ms | 5624.0% | 1007.0MiB |
| gRPC | Unary | 1,024 | 2,338,525 | 41.35ms | 41.35ms | 6207.7% | 2.5GiB |
| gRPC | Unary TLS | 256 | 2,058,161 | 12.19ms | 12.19ms | 6079.8% | 818.2MiB |
| gRPC | Unary TLS | 1,024 | 1,826,316 | 56.98ms | 56.98ms | 5281.5% | 2.8GiB |
| gRPC | Stream | 64 | 8,630,000 | 139.48ms | 1.07s | 3168.6% | 130.4MiB |
| gRPC | Stream TLS | 64 | 8,617,000 | 140.09ms | 1.08s | 2374.6% | 169.1MiB |
| WebSocket | Echo | 512 | 1,835,273 | 278us | 696us | 6128.2% | 220.4MiB |
| WebSocket | Echo | 4,096 | 1,806,996 | 1.72ms | 5.25ms | 6120.1% | 389.2MiB |
| WebSocket | Echo | 16,384 | 1,686,022 | 3.63ms | 10.10ms | 6033.9% | 456.1MiB |
| WebSocket | Echo Pipelined | 512 | 19,748,819 | 414us | 2.08ms | 5700.1% | 225MiB |
| WebSocket | Echo Pipelined | 4,096 | 19,744,758 | 1.92ms | 7.12ms | 5656.8% | 380MiB |
| WebSocket | Echo Pipelined | 16,384 | 19,407,960 | 2.94ms | 9.60ms | 5864.6% | 380MiB |
How the benchmark is run · The machine · Add or fix an entry