wtx
Emerging · Rust · standard configuration
WTX - gRPC Server
Achievements
🥇 7 Gold · 🥈 4 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 | Family composite | Composite · gRPC | 1 of 4 |
| 🥇 Gold | Within its language | Rust · HTTP/2 | 1 of 4 |
| 🥇 Gold | Within its language | Rust · WebSocket | 1 of 4 |
| 🥇 Gold | Test profile | WebSocket · Echo | 1 of 15 |
| 🥇 Gold | Test profile | WebSocket · Echo Short-lived | 1 of 6 |
| 🥇 Gold | Test profile | gRPC · Unary | 1 of 4 |
| 🥇 Gold | Test profile | gRPC · Unary TLS | 1 of 4 |
| 🥈 Silver | Family composite | Composite · HTTP/2 | 2 of 18 |
| 🥈 Silver | Family composite | Composite · WebSocket | 2 of 15 |
| 🥈 Silver | Test profile | HTTP/2 · Baseline | 2 of 17 |
| 🥈 Silver | Test profile | HTTP/2 · JSON (h2c) | 2 of 14 |
| 🥉 Bronze | Test profile | HTTP/2 · Baseline (h2c) | 3 of 14 |
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/2 | 2 of 18 | 1799 |
| gRPC | 1 of 4 | 2000 |
| WebSocket | 2 of 15 | 2448 |
Every result
Alpha Round, 19 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 |
|---|---|---|---|---|---|---|---|
| HTTP/2 | Baseline | 256 | 4,077,516 | 5.03ms | 69.51ms | 5806.0% | 732MiB |
| HTTP/2 | Baseline | 1,024 | 3,827,100 | 23.44ms | 345.82ms | 6351.4% | 978MiB |
| HTTP/2 | Baseline (h2c) | 256 | 4,125,744 | 6.53ms | 25.87ms | 6419.7% | 708MiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 3,852,562 | 25.82ms | 130.96ms | 6446.0% | 991MiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 3,709,205 | 107.63ms | 611.62ms | 6389.5% | 2.0GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 1,875,721 | 16.96ms | 233.54ms | 6551.1% | 473MiB |
| HTTP/2 | JSON (h2c) | 4,096 | 1,771,441 | 72.15ms | 571.49ms | 6575.2% | 939MiB |
| gRPC | Unary | 256 | 3,990,708 | 6.55ms | 69.93ms | 6379.2% | 727MiB |
| gRPC | Unary | 1,024 | 3,620,970 | 26.89ms | 193.30ms | 6383.3% | 1022MiB |
| gRPC | Unary TLS | 256 | 3,688,532 | 5.19ms | 49.74ms | 5485.4% | 726MiB |
| gRPC | Unary TLS | 1,024 | 3,625,918 | 22.35ms | 345.55ms | 6380.6% | 984MiB |
| WebSocket | Echo | 512 | 4,131,449 | 123us | 279us | 6324.4% | 41MiB |
| WebSocket | Echo | 4,096 | 4,160,268 | 984us | 1.41ms | 6480.3% | 121MiB |
| WebSocket | Echo | 16,384 | 3,732,875 | 4.38ms | 5.85ms | 6257.3% | 375MiB |
| WebSocket | Echo Pipelined | 512 | 20,163,386 | 405us | 849us | 6500.0% | 39MiB |
| WebSocket | Echo Pipelined | 4,096 | 20,110,483 | 3.26ms | 4.17ms | 6596.5% | 120MiB |
| WebSocket | Echo Pipelined | 16,384 | 18,721,003 | 13.90ms | 28.30ms | 6031.9% | 378MiB |
| WebSocket | Echo Short-lived | 512 | 2,101,061 | 145us | 521us | 5314.3% | 73MiB |
| WebSocket | Echo Short-lived | 4,096 | 2,591,018 | 1.05ms | 2.46ms | 5950.6% | 212MiB |
Compared with
The Rust entries around wtx on the HTTP/2 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs wtx | |
|---|---|---|---|
| actix | 1608 | -11% | head to head |
| trillium-tuned | 1023 | -43% | head to head |
Compare wtx with any Rust entry · Compare wtx with any entry, in any language · Every Rust entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry