genhttp
Emerging · C# · standard configuration · completeness 4/4
Lightweight, embeddable and modular C# web server.
Achievements
🥈 2 Silver · 🥉 1 Bronze. 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/1.1 | 2 of 10 |
| 🥈 Silver | Within its language | C# · WebSocket | 2 of 6 |
| 🥉 Bronze | Test profile | WebSocket · Echo Pipelined | 3 of 17 |
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 | 8 of 72 | 4910 |
| WebSocket | 6 of 20 | 1744 |
Every result
Alpha Round, 21 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,958,203 | 2.09ms | 5.12ms | 5824.3% | 598MiB |
| Connection | Pipelined | 4,096 | 17,375,104 | 3.54ms | 7.37ms | 6110.6% | 273MiB |
| Connection | Short-lived | 4,096 | 1,236,152 | 1.87ms | 18.80ms | 5204.7% | 397MiB |
| Concurrency | Async Delay | 32,000 | 898,778 | 32.08ms | 53.20ms | 3779.0% | 2.8GiB |
| Efficiency | Latency-10K | 1,024 | 9,982 | 77.2us | 104.0us | 38.3% | 170MiB |
| Efficiency | Latency-1M | 1,024 | 997,815 | 514.5us | 3381.0us | 2424.1% | 223MiB |
| Efficiency | Latency-500K/8 | 1,024 | 336,462 | 3229303.5us | 6445056.0us | 751.4% | 222MiB |
| Workload | JSON Comp | 4,096 | 459,717 | 8.18ms | 16.70ms | 6032.6% | 686MiB |
| Workload | JSON Comp | 16,384 | 439,871 | 31.12ms | 79.70ms | 5905.7% | 1.5GiB |
| Workload | JSON TLS | 4,096 | 711,586 | 5.82ms | 98.20ms | 6115.4% | 1.1GiB |
| Workload | 8Gbit | 512 | 49,354 | 122.4us | 169.0us | 358.0% | 269MiB |
| Workload | Static TLS | 1,024 | 382,685 | 2.82ms | 42.27ms | 5679.2% | 378MiB |
| Database | Async DB | 1,024 | 202,737 | 4.45ms | 10.90ms | 2822.3% | 426MiB |
| WebSocket | Echo | 512 | 2,404,824 | 212us | 967us | 5399.4% | 234MiB |
| WebSocket | Echo | 4,096 | 2,354,743 | 1.61ms | 4.65ms | 5255.9% | 595MiB |
| WebSocket | Echo | 16,384 | 2,200,886 | 5.51ms | 13.30ms | 5617.0% | 1.5GiB |
| WebSocket | Echo Pipelined | 512 | 29,454,646 | 277us | 1.79ms | 5187.2% | 258MiB |
| WebSocket | Echo Pipelined | 4,096 | 28,620,857 | 2.11ms | 6.45ms | 5708.1% | 600MiB |
| WebSocket | Echo Pipelined | 16,384 | 28,856,294 | 5.20ms | 12.00ms | 6026.4% | 1.5GiB |
| WebSocket | Echo Short-lived | 512 | 1,171,864 | 162us | 1.07ms | 5042.9% | 309MiB |
| WebSocket | Echo Short-lived | 4,096 | 1,198,862 | 248us | 2.51ms | 5475.3% | 419MiB |
Compared with
The C# entries around genhttp on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs genhttp | |
|---|---|---|---|
| genhttp-ioxide | 7006 | +43% | head to head |
| simplew-tuned | 6023 | +23% | head to head |
| ioxide | 5777 | +18% | head to head |
| simplew | 4297 | -12% | head to head |
| sockets | 4079 | -17% | head to head |
Compare genhttp with any C# entry · Compare genhttp with any entry, in any language · Every C# entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry