genhttp
Emerging · C# · tuned 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# · WebSocket | 2 of 7 |
| 🥈 Silver | Test profile | Efficiency · Latency-10K | 2 of 93 |
| 🥉 Bronze | Within its language | C# · HTTP/1.1 | 3 of 11 |
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 | 12 of 93 | 4960 |
| WebSocket | 6 of 25 | 1716 |
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,930,182 | 1.98ms | 6.96ms | 5742.7% | 610MiB |
| Connection | Pipelined | 4,096 | 16,979,689 | 3.59ms | 14.80ms | 5997.1% | 370MiB |
| Connection | Short-lived | 4,096 | 1,222,282 | 1.98ms | 21.80ms | 5263.9% | 432MiB |
| Concurrency | Async Delay | 32,000 | 952,876 | 30.20ms | 60.30ms | 3916.0% | 2.6GiB |
| Efficiency | Latency-10K | 1,024 | 9,983 | 77.3us | 105.0us | 40.9% | 177MiB |
| Efficiency | Latency-1M | 1,024 | 997,503 | 482.3us | 3423.0us | 2398.6% | 240MiB |
| Efficiency | Latency-500K/8 | 1,024 | 334,969 | 3212560.5us | 6494208.0us | 724.4% | 286MiB |
| Workload | JSON Comp | 4,096 | 435,030 | 8.68ms | 37.30ms | 6084.1% | 628MiB |
| Workload | JSON Comp | 16,384 | 442,472 | 27.24ms | 101.20ms | 6067.5% | 1.5GiB |
| Workload | JSON TLS | 4,096 | 707,087 | 6.07ms | 84.10ms | 6010.8% | 1.0GiB |
| Workload | 8Gbit | 512 | 49,298 | 122.8us | 163.0us | 362.9% | 267MiB |
| Workload | Static TLS | 1,024 | 371,092 | 3.10ms | 60.37ms | 5648.7% | 629MiB |
| Database | Async DB | 1,024 | 201,783 | 4.58ms | 11.10ms | 2775.7% | 412MiB |
| WebSocket | Echo | 512 | 2,361,267 | 216us | 1.17ms | 5140.8% | 222MiB |
| WebSocket | Echo | 4,096 | 2,199,489 | 1.77ms | 6.85ms | 4934.8% | 663MiB |
| WebSocket | Echo | 16,384 | 2,114,119 | 5.11ms | 15.00ms | 5131.1% | 1.5GiB |
| WebSocket | Echo Pipelined | 512 | 29,754,160 | 274us | 1.64ms | 5123.8% | 260MiB |
| WebSocket | Echo Pipelined | 4,096 | 29,394,896 | 2.06ms | 8.24ms | 5606.0% | 602MiB |
| WebSocket | Echo Pipelined | 16,384 | 28,754,208 | 5.32ms | 15.10ms | 5467.8% | 1.8GiB |
| WebSocket | Echo Short-lived | 512 | 1,160,784 | 156us | 1.02ms | 4915.3% | 270MiB |
| WebSocket | Echo Short-lived | 4,096 | 1,157,684 | 224us | 1.96ms | 5519.0% | 462MiB |
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 | 7074 | +43% | head to head |
| simplew-tuned | 6099 | +23% | head to head |
| ioxide | 5777 | +16% | head to head |
| simplew | 4348 | -12% | head to head |
| sockets | 4079 | -18% | 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