libuvcpp
Emerging · C++ · engine: libuv · standard configuration · completeness 4/4
libuvcpp on the libuv event loop, one loop per available core. Routing, path and query params, static files and WebSocket through uvcpp_web_app, nlohmann/json serialization behind uvcpp_json, gzip through the built-in response compression, and async Postgres through uvcpp_db_pool. HTTP/2 over TLS on 8443 and HTTP/3 on 8443/udp are the same build.
Achievements
🥈 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 |
|---|---|---|---|
| 🥈 Silver | Test profile | Efficiency · Latency-10K | 2 of 76 |
| 🥉 Bronze | Within its language | C++ · HTTP/1.1 | 3 of 4 |
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 | 24 of 76 | 3373 |
| HTTP/2 | 15 of 23 | 604 |
| HTTP/3 | 13 of 13 | 0 |
| WebSocket | 10 of 23 | 1639 |
Every result
Alpha Round, 26 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,141,979 | 3.59ms | 7.69ms | 6099.8% | 113MiB |
| Connection | Pipelined | 4,096 | 3,612,234 | 18.18ms | 36.40ms | 5953.6% | 135MiB |
| Connection | Short-lived | 4,096 | 907,798 | 4.39ms | 84.90ms | 5545.2% | 65MiB |
| Concurrency | Async Delay | 32,000 | 725,202 | 43.77ms | 69.90ms | 5367.4% | 478MiB |
| Efficiency | Latency-10K | 1,024 | 9,983 | 79.9us | 125.0us | 40.5% | 59MiB |
| Efficiency | Latency-1M | 1,024 | 953,409 | 378158.6us | 4470784.0us | 5448.5% | 63MiB |
| Efficiency | Latency-500K/8 | 1,024 | 254,662 | 4869385.6us | 10121216.0us | 776.6% | 29MiB |
| Workload | JSON Comp | 4,096 | 194,410 | 20.47ms | 435.10ms | 6321.2% | 90MiB |
| Workload | JSON Comp | 16,384 | 192,334 | 56.15ms | 1.15s | 6476.5% | 170MiB |
| Workload | JSON TLS | 4,096 | 370,872 | 10.89ms | 74.97ms | 6452.9% | 646MiB |
| Workload | 8Gbit | 512 | 49,312 | 118.7us | 167.0us | 357.4% | 147MiB |
| Workload | Static TLS | 1,024 | 115,239 | 8.85ms | 65.12ms | 2901.0% | 302MiB |
| Database | Async DB | 1,024 | 83,189 | 11.94ms | 41.20ms | 3450.1% | 173MiB |
| HTTP/2 | Baseline | 256 | 3,416,262 | 8.09ms | 48.01ms | 5674.6% | 108MiB |
| HTTP/2 | Baseline | 1,024 | 3,327,227 | 29.45ms | 137.09ms | 5662.9% | 267MiB |
| HTTP/2 | Static | 256 | 149,781 | 54.51ms | 207.06ms | 3334.8% | 1.3GiB |
| HTTP/2 | Static | 1,024 | 157,097 | 198.71ms | 728.34ms | 3425.2% | 3.7GiB |
| HTTP/3 | Baseline | 64 | 58 | 15.14ms | 35.40ms | 4.2% | 52MiB |
| WebSocket | Echo | 512 | 2,793,537 | 182us | 426us | 6755.5% | 57MiB |
| WebSocket | Echo | 4,096 | 2,887,784 | 1.42ms | 2.29ms | 6681.6% | 113MiB |
| WebSocket | Echo | 16,384 | 2,626,001 | 6.15ms | 7.74ms | 6657.4% | 316MiB |
| WebSocket | Echo Pipelined | 512 | 10,846,084 | 754us | 3.26ms | 6392.0% | 58MiB |
| WebSocket | Echo Pipelined | 4,096 | 12,632,957 | 5.12ms | 11.30ms | 5901.9% | 115MiB |
| WebSocket | Echo Pipelined | 16,384 | 10,629,843 | 23.92ms | 68.50ms | 6330.8% | 326MiB |
| WebSocket | Echo Short-lived | 512 | 1,512,438 | 214us | 644us | 5813.7% | 69MiB |
| WebSocket | Echo Short-lived | 4,096 | 1,722,414 | 374us | 801us | 6144.3% | 71MiB |
Compared with
The C++ entries around libuvcpp on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs libuvcpp | |
|---|---|---|---|
| hical | 6266 | +86% | head to head |
| drogon | 4345 | +29% | head to head |
| cutelyst | 4322 | +28% | head to head |
| userver | 3190 | -5% | head to head |
| proxygen | 1227 | -64% | head to head |
Compare libuvcpp with any C++ entry · Compare libuvcpp with any entry, in any language · Every C++ entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry