dusty-tuned
Emerging · Zig · engine: zio · tuned configuration · completeness 4/4
Dusty HTTP framework on the zio async runtime, the dusty entry with two changes: JSON through json.zig instead of std.json, and no request or keep-alive timeouts. Same routes, static and TLS paths as dusty.
Achievements
🥇 5 Gold · 🥈 1 Silver. 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 | Family composite | Composite · HTTP/1.1 | 1 of 103 |
| 🥇 Gold | Test profile | Connection · Baseline | 1 of 103 |
| 🥇 Gold | Test profile | WebSocket · Echo Pipelined | 1 of 32 |
| 🥇 Gold | Test profile | Workload · JSON Comp | 1 of 99 |
| 🥇 Gold | Test profile | Workload · JSON TLS | 1 of 100 |
| 🥈 Silver | Family composite | Composite · WebSocket | 2 of 36 |
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 | 1 of 103 | 7417 |
| WebSocket | 2 of 36 | 2854 |
Every result
Alpha Round, 22 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 | 3,429,960 | 1.20ms | 2.52ms | 6332.4% | 201MiB |
| Connection | Pipelined | 4,096 | 4,421,573 | 14.82ms | 41.30ms | 6423.4% | 205MiB |
| Connection | Short-lived | 4,096 | 2,056,595 | 1.98ms | 19.00ms | 6578.0% | 102MiB |
| Concurrency | Async Delay | 32,000 | 2,258,867 | 14.05ms | 20.10ms | 6364.6% | 1.3GiB |
| Efficiency | Latency-10K | 1,024 | 9,978 | 87.3us | 101.0us | 25.0% | 66MiB |
| Efficiency | Latency-1M | 1,024 | 997,391 | 108.4us | 200.0us | 2889.4% | 70MiB |
| Efficiency | Latency-500K/8 | 1,024 | 422,943 | 1429024.4us | 6313984.0us | 790.5% | 58MiB |
| Workload | JSON Comp | 4,096 | 688,630 | 5.87ms | 141.20ms | 6356.9% | 95MiB |
| Workload | JSON Comp | 16,384 | 676,633 | 22.63ms | 589.40ms | 6618.5% | 386MiB |
| Workload | JSON TLS | 4,096 | 1,626,943 | 2.36ms | 74.96ms | 6479.2% | 743MiB |
| Workload | 8Gbit | 512 | 49,287 | 108.7us | 144.0us | 310.2% | 120MiB |
| Workload | Static TLS | 1,024 | 365,098 | 3.03ms | 31.33ms | 6568.5% | 201MiB |
| Database | Async DB | 1,024 | 331,657 | 2.52ms | 11.00ms | 3928.9% | 128MiB |
| Database | Fortunes | 1,024 | 276,652 | 2.18ms | 11.00ms | 5204.3% | 155MiB |
| WebSocket | Echo | 512 | 4,055,068 | 125us | 184us | 6532.7% | 50MiB |
| WebSocket | Echo | 4,096 | 3,923,765 | 1.02ms | 4.13ms | 6235.9% | 200MiB |
| WebSocket | Echo | 16,384 | 3,478,205 | 3.13ms | 12.70ms | 6052.4% | 716MiB |
| WebSocket | Echo Pipelined | 512 | 59,249,435 | 137us | 263us | 6469.4% | 52MiB |
| WebSocket | Echo Pipelined | 4,096 | 57,343,347 | 1.12ms | 2.58ms | 6315.9% | 215MiB |
| WebSocket | Echo Pipelined | 16,384 | 49,385,968 | 3.40ms | 13.20ms | 6566.4% | 756MiB |
| WebSocket | Echo Short-lived | 512 | 2,161,398 | 101us | 270us | 6527.6% | 53MiB |
| WebSocket | Echo Short-lived | 4,096 | 2,069,874 | 113us | 325us | 6259.9% | 150MiB |
Compared with
The Zig entries around dusty-tuned on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs dusty-tuned | |
|---|---|---|---|
| dusty | 7002 | -6% | head to head |
| nilo | 6354 | -14% | head to head |
Compare dusty-tuned with any Zig entry · Compare dusty-tuned with any entry, in any language · Every Zig entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry