hirundo
Engine · Clojure · engine: helidon-nima
Minimal Hirundo engine benchmark pinned to the upstream Helidon/Nima Ring adapter with HTTP/1.1, TLS, HTTP/2, H2c, and WebSocket support.
Achievements
🥇 2 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 | Within its language | Clojure · HTTP/2 | 1 of 5 |
| 🥇 Gold | Within its language | Clojure · WebSocket | 1 of 7 |
| 🥈 Silver | Test profile | Workload · 8Gbit | 2 of 16 |
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 | 26 of 34 | 1268 |
| HTTP/2 | 8 of 12 | 293 |
| WebSocket | 10 of 16 | 1032 |
Every result
Alpha Round, 29 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 | 90,185 | 41.49ms | 44.40ms | 925.2% | 1.8GiB |
| Connection | Pipelined | 4,096 | 3,247,448 | 1.45ms | 1.45ms | 6103.6% | 13.4GiB |
| Connection | Short-lived | 4,096 | 100,702 | 37.39ms | 43.90ms | 1138.0% | 3.3GiB |
| Concurrency | Async Delay | 32,000 | 230,051 | 121.13ms | 196.80ms | 4967.1% | 5.6GiB |
| Efficiency | Latency-10K | 1,024 | 9,982 | 106.1us | 142.0us | 69.4% | 960MiB |
| Efficiency | Latency-1M | 1,024 | 24,707 | 9736020.0us | 19292160.0us | 276.0% | 959MiB |
| Efficiency | Latency-500K/8 | 1,024 | 24,772 | 9484121.8us | 18784256.0us | 151.9% | 749MiB |
| Workload | JSON Comp | 4,096 | 49,994 | 56.09ms | 1.95s | 6234.5% | 5.1GiB |
| Workload | JSON Comp | 16,384 | 48,924 | 75.86ms | 2.57s | 6277.0% | 5.2GiB |
| Workload | JSON TLS | 4,096 | 84,704 | 45.81ms | 885.83ms | 6397.2% | 14.8GiB |
| Workload | 8Gbit | 512 | 49,374 | 165.6us | 1825.0us | 566.8% | 2.0GiB |
| Workload | Static TLS | 1,024 | 105,969 | 73.37ms | 944.32ms | 6242.0% | 13.8GiB |
| HTTP/2 | Baseline | 256 | 1,391,961 | 17.94ms | 106.30ms | 6267.8% | 14.2GiB |
| HTTP/2 | Baseline | 1,024 | 1,449,118 | 65.78ms | 542.62ms | 6142.2% | 16.2GiB |
| HTTP/2 | Static | 256 | 90,547 | 81.35ms | 1.81s | 6383.3% | 14.0GiB |
| HTTP/2 | Static | 1,024 | 93,007 | 276.61ms | 4.95s | 6363.0% | 21.4GiB |
| HTTP/2 | Baseline (h2c) | 256 | 2,071,261 | 12.17ms | 91.62ms | 6245.4% | 13.7GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 2,080,898 | 47.57ms | 238.93ms | 6316.9% | 20.7GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 1,918,694 | 185.38ms | 1.08s | 5990.8% | 27.7GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 89,663 | 335.81ms | 1.57s | 6254.0% | 14.4GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 85,960 | 1.10s | 4.30s | 6358.0% | 15.2GiB |
| WebSocket | Echo | 512 | 2,507,295 | 203us | 327us | 6716.4% | 1.9GiB |
| WebSocket | Echo | 4,096 | 2,286,356 | 1.55ms | 2.16ms | 6500.8% | 1.4GiB |
| WebSocket | Echo | 16,384 | 2,137,810 | 2.34ms | 3.75ms | 6575.9% | 3.7GiB |
| WebSocket | Echo Pipelined | 512 | 15,350,259 | 533us | 1.14ms | 6320.7% | 4.7GiB |
| WebSocket | Echo Pipelined | 4,096 | 15,268,623 | 3.86ms | 7.33ms | 6183.1% | 5.0GiB |
| WebSocket | Echo Pipelined | 16,384 | 14,816,375 | 8.43ms | 21.20ms | 5991.4% | 6.2GiB |
| WebSocket | Echo Short-lived | 512 | 653,152 | 120us | 342us | 4593.0% | 4.9GiB |
| WebSocket | Echo Short-lived | 4,096 | 635,526 | 120us | 340us | 4589.0% | 4.9GiB |
Compared with
The Clojure entries around hirundo on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs hirundo | |
|---|---|---|---|
| ring-http-exchange | 3649 | +188% | head to head |
| ring-jetty-adapter | 1614 | +27% | head to head |
| aleph | 1402 | +11% | head to head |
| pedestal | 1146 | -10% | head to head |
| http-kit | 839 | -34% | head to head |
Compare hirundo with any Clojure entry · Compare hirundo with any entry, in any language · Every Clojure entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry