aleph
Engine · Clojure · engine: netty
Minimal Aleph HTTP engine benchmark with HTTP/1.1, TLS, HTTP/2, H2C, and WebSocket support.
Achievements
🥉 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 |
|---|---|---|---|
| 🥉 Bronze | Within its language | Clojure · HTTP/1.1 | 3 of 8 |
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 34 | 1402 |
| HTTP/2 | 11 of 12 | 40 |
| WebSocket | 14 of 16 | 145 |
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 | 246,731 | 6.89ms | 71.80ms | 6348.4% | 2.1GiB |
| Connection | Pipelined | 4,096 | 328,863 | 108.98ms | 488.10ms | 6441.6% | 2.3GiB |
| Connection | Short-lived | 4,096 | 182,729 | 5.70ms | 62.10ms | 6094.9% | 1.9GiB |
| Concurrency | Async Delay | 32,000 | 165,989 | 120.03ms | 295.30ms | 2036.7% | 2.2GiB |
| Efficiency | Latency-10K | 1,024 | 9,982 | 101.3us | 135.0us | 69.7% | 1.2GiB |
| Efficiency | Latency-1M | 1,024 | 416,151 | 5822728.3us | 11939840.0us | 6456.0% | 4.9GiB |
| Efficiency | Latency-500K/8 | 1,024 | 156,391 | 6943123.8us | 13635584.0us | 790.1% | 1.8GiB |
| Workload | JSON Comp | 4,096 | 46,740 | 42.86ms | 425.40ms | 6351.1% | 5.4GiB |
| Workload | JSON Comp | 16,384 | 47,661 | 86.77ms | 1.01s | 6140.6% | 5.4GiB |
| Workload | JSON TLS | 4,096 | 82,933 | 47.33ms | 1.35s | 6457.7% | 5.5GiB |
| Workload | 8Gbit | 512 | 49,285 | 160.3us | 330.0us | 582.1% | 2.3GiB |
| Workload | Static TLS | 1,024 | 21,219 | 50.41ms | 347.03ms | 6424.5% | 6.9GiB |
| HTTP/2 | Baseline | 256 | 226,831 | 108.57ms | 1.79s | 6421.5% | 5.5GiB |
| HTTP/2 | Baseline | 1,024 | 141,135 | 574.27ms | 2.93s | 6237.2% | 5.0GiB |
| HTTP/2 | Static | 256 | 23,277 | 346.25ms | 1.20s | 6404.4% | 8.8GiB |
| HTTP/2 | Static | 1,024 | 23,748 | 1.38s | 3.89s | 6329.7% | 25.7GiB |
| HTTP/2 | Baseline (h2c) | 256 | 243,705 | 102.47ms | 1.74s | 6453.5% | 5.2GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 169,524 | 566.08ms | 4.29s | 4089.9% | 5.6GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 145,764 | 1.46s | 4.41s | 6151.6% | 5.6GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 83,414 | 305.69ms | 2.84s | 6345.1% | 14.8GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 58,308 | 1.12s | 3.98s | 6245.0% | 14.9GiB |
| WebSocket | Echo | 512 | 286,110 | 1.79ms | 5.84ms | 6444.0% | 1.9GiB |
| WebSocket | Echo | 4,096 | 251,879 | 4.45ms | 16.20ms | 6339.6% | 2.1GiB |
| WebSocket | Echo | 16,384 | 233,281 | 7.57ms | 144.10ms | 6474.5% | 1.8GiB |
| WebSocket | Echo Pipelined | 512 | 330,073 | 24.68ms | 40.20ms | 6437.1% | 1.8GiB |
| WebSocket | Echo Pipelined | 4,096 | 324,659 | 44.66ms | 394.90ms | 6454.8% | 1.7GiB |
| WebSocket | Echo Pipelined | 16,384 | 321,251 | 84.76ms | 734.50ms | 6228.4% | 1.9GiB |
| WebSocket | Echo Short-lived | 512 | 198,630 | 1.66ms | 6.52ms | 6256.8% | 1.9GiB |
| WebSocket | Echo Short-lived | 4,096 | 192,127 | 1.81ms | 10.00ms | 6044.3% | 1.7GiB |
Compared with
The Clojure entries around aleph on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs aleph | |
|---|---|---|---|
| ring-http-exchange | 3649 | +160% | head to head |
| ring-jetty9-adapter | 1667 | +19% | head to head |
| ring-jetty-adapter | 1614 | +15% | head to head |
| hirundo | 1268 | -10% | head to head |
| pedestal | 1146 | -18% | head to head |
Compare aleph with any Clojure entry · Compare aleph with any entry, in any language · Every Clojure entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry