fib-tuned
Experimental · Go · engine: fib · tuned configuration · completeness 2/4
The fib entry with its compression replaced: the JSON routes sit behind a compression middleware written in the entry on fib's middleware API (middleware.Chain and Context.OnResponse, as fib's own compress), coding brotli (andybalholm/brotli), zstd, gzip and deflate (klauspost/compress) as Accept-Encoding weighs them. Between codings a client weighs the same it picks gzip, then zstd, brotli and deflate, the order measured to cost least for the bytes saved on these 4-8 KB bodies. Everything else - listeners on 8080/8082/8081/8443 tcp+udp/9000, default fib configuration, routes, static through ServeContent, TLS - is the fib entry's.
Achievements
🥈 2 Silver · 🥉 2 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 | Family composite | Composite · HTTP/3 | 2 of 4 |
| 🥈 Silver | Test profile | HTTP/3 · Baseline | 2 of 4 |
| 🥉 Bronze | Test profile | HTTP/3 · Static | 3 of 4 |
| 🥉 Bronze | Test profile | Workload · 8Gbit | 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 | 5 of 8 | 2844 |
| HTTP/2 | 4 of 5 | 430 |
| HTTP/3 | 2 of 4 | 832 |
Every result
Alpha Round, 24 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 | 653,116 | 6.26ms | 26.20ms | 3536.3% | 188MiB |
| Connection | Pipelined | 4,096 | 4,866,486 | 13.15ms | 309.30ms | 3239.8% | 319MiB |
| Connection | Short-lived | 4,096 | 301,444 | 13.62ms | 29.10ms | 2160.6% | 147MiB |
| Concurrency | Async Delay | 32,000 | 918,598 | 34.53ms | 43.80ms | 3218.5% | 407MiB |
| Efficiency | Latency-10K | 1,024 | 9,982 | 80.9us | 109.0us | 41.9% | 49MiB |
| Efficiency | Latency-1M | 1,024 | 672,428 | 3129328.4us | 6440960.0us | 3121.5% | 134MiB |
| Efficiency | Latency-500K/8 | 1,024 | 344,645 | 3075442.7us | 6133760.0us | 746.4% | 48MiB |
| Workload | JSON Comp | 4,096 | 185,388 | 22.04ms | 77.50ms | 4167.8% | 457MiB |
| Workload | JSON Comp | 16,384 | 206,441 | 77.57ms | 241.10ms | 4749.5% | 964MiB |
| Workload | JSON TLS | 4,096 | 350,727 | 37.64ms | 858.31ms | 4379.4% | 358MiB |
| Workload | 8Gbit | 512 | 49,291 | 226.7us | 1401.0us | 600.0% | 101MiB |
| Workload | Static TLS | 1,024 | 220,373 | 15.36ms | 290.98ms | 4382.7% | 172MiB |
| Database | Async DB | 1,024 | 78,631 | 12.60ms | 28.90ms | 3494.6% | 158MiB |
| HTTP/2 | Baseline | 256 | 787,297 | 30.78ms | 417.89ms | 3963.6% | 219MiB |
| HTTP/2 | Baseline | 1,024 | 983,898 | 94.76ms | 889.96ms | 4585.5% | 398MiB |
| HTTP/2 | Static | 256 | 102,648 | 77.91ms | 903.34ms | 3207.8% | 365MiB |
| HTTP/2 | Static | 1,024 | 124,762 | 239.71ms | 2.34s | 3576.8% | 713MiB |
| HTTP/2 | Baseline (h2c) | 256 | 736,258 | 33.76ms | 331.86ms | 4096.2% | 163MiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 913,023 | 108.36ms | 935.08ms | 4565.1% | 374MiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 1,248,069 | 289.84ms | 2.58s | 4772.7% | 525MiB |
| HTTP/2 | JSON (h2c) | 1,024 | 217,381 | 143.11ms | 1.96s | 3801.9% | 291MiB |
| HTTP/2 | JSON (h2c) | 4,096 | 287,354 | 400.45ms | 2.68s | 4253.8% | 561MiB |
| HTTP/3 | Baseline | 64 | 695,001 | 4.23ms | 31.11ms | 3046.5% | 118MiB |
| HTTP/3 | Static | 64 | 40,155 | 54.79ms | 1.03s | 1050.4% | 274MiB |
Compared with
The Go entries around fib-tuned on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs fib-tuned | |
|---|---|---|---|
| fiber-tuned | 6394 | +125% | head to head |
| fiber | 5726 | +101% | head to head |
| go-fasthttp | 3234 | +14% | head to head |
| fib | 2820 | -1% | head to head |
| echo | 2295 | -19% | head to head |
Compare fib-tuned with any Go entry · Compare fib-tuned with any entry, in any language · Every Go entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry