aspnet-minimal-satorigc
Experimental · C# · engine: kestrel · standard configuration · completeness 4/4
Minimal ASP.NET Core server using .NET 10 with Kestrel and minimal API routing, published self-contained with the Satori GC.
Achievements
🥇 1 Gold · 🥈 1 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 |
|---|---|---|---|
| 🥇 Gold | Test profile | Efficiency · Latency-10K | 1 of 7 |
| 🥈 Silver | Test profile | Workload · 8Gbit | 2 of 7 |
| 🥉 Bronze | Test profile | Efficiency · Latency-1M | 3 of 7 |
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 | 6 of 9 | 2849 |
| HTTP/2 | 5 of 6 | 583 |
| HTTP/3 | 4 of 5 | 146 |
Every result
Alpha Round, 25 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,219,116 | 2.82ms | 8.64ms | 4996.7% | 491MiB |
| Connection | Pipelined | 4,096 | 5,796,816 | 8.01ms | 25.00ms | 5244.4% | 516MiB |
| Connection | Short-lived | 4,096 | 457,215 | 1.44ms | 12.70ms | 3342.0% | 408MiB |
| Concurrency | Async Delay | 32,000 | 893,944 | 29.96ms | 58.50ms | 4640.2% | 1.3GiB |
| Efficiency | Latency-10K | 1,024 | 9,983 | 84.2us | 122.0us | 144.5% | 163MiB |
| Efficiency | Latency-1M | 1,024 | 997,843 | 967.7us | 5066.0us | 4274.0% | 286MiB |
| Efficiency | Latency-500K/8 | 1,024 | 294,754 | 4107749.8us | 8087552.0us | 747.4% | 148MiB |
| Workload | JSON Comp | 4,096 | 349,215 | 8.50ms | 27.10ms | 5759.4% | 582MiB |
| Workload | JSON Comp | 16,384 | 345,749 | 17.01ms | 47.80ms | 5533.7% | 778MiB |
| Workload | JSON TLS | 4,096 | 457,277 | 8.46ms | 85.75ms | 5973.2% | 936MiB |
| Workload | 8Gbit | 512 | 49,359 | 143.1us | 198.0us | 963.5% | 291MiB |
| Workload | Static TLS | 1,024 | 89,039 | 11.70ms | 70.07ms | 5939.2% | 713MiB |
| Database | Async DB | 1,024 | 191,739 | 4.67ms | 9.91ms | 3561.1% | 459MiB |
| Database | Fortunes | 1,024 | 96,661 | 7.85ms | 21.60ms | 4788.8% | 781MiB |
| HTTP/2 | Baseline | 256 | 2,036,196 | 11.80ms | 67.49ms | 5853.4% | 1.2GiB |
| HTTP/2 | Baseline | 1,024 | 2,143,886 | 44.62ms | 182.00ms | 5950.6% | 3.7GiB |
| HTTP/2 | Static | 256 | 75,945 | 105.21ms | 945.47ms | 6216.2% | 3.4GiB |
| HTTP/2 | Static | 1,024 | 60,293 | 483.62ms | 4.87s | 6462.1% | 8.8GiB |
| HTTP/2 | Baseline (h2c) | 256 | 2,498,402 | 9.93ms | 48.69ms | 5732.7% | 1.1GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 2,596,218 | 39.15ms | 153.34ms | 6037.4% | 3.3GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 2,664,426 | 116.75ms | 473.15ms | 6081.0% | 9.4GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 773,740 | 41.47ms | 207.95ms | 6008.3% | 2.1GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 778,502 | 125.95ms | 613.60ms | 6050.0% | 5.6GiB |
| HTTP/3 | Baseline | 64 | 565,429 | 6.53ms | 18.36ms | 6084.3% | 1.3GiB |
| HTTP/3 | Static | 64 | 42,181 | 80.08ms | 340.55ms | 6109.0% | 2.3GiB |
Compared with
The C# entries around aspnet-minimal-satorigc on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs aspnet-minimal-satorigc | |
|---|---|---|---|
| genhttp-ioxide | 7309 | +157% | head to head |
| fastendpoints | 2976 | +4% | head to head |
| codebehind | 2879 | +1% | head to head |
| kestrel | 2557 | -10% | head to head |
| effinitive | 2550 | -10% | head to head |
Compare aspnet-minimal-satorigc with any C# entry · Compare aspnet-minimal-satorigc with any entry, in any language · Every C# entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry