cardigan
Engine · Java · engine: io_uring
Java HTTP engine built on io_uring, Panama FFI, virtual threads, and thread-per-core event loops.
Achievements
🥇 3 Gold · 🥈 2 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 | Test profile | HTTP/2 · Baseline | 1 of 7 |
| 🥇 Gold | Test profile | HTTP/2 · Baseline (h2c) | 1 of 5 |
| 🥇 Gold | Test profile | Workload · 8Gbit | 1 of 9 |
| 🥈 Silver | Family composite | Composite · HTTP/2 | 2 of 7 |
| 🥈 Silver | Test profile | HTTP/2 · Static | 2 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 | 4 of 26 | 5294 |
| HTTP/2 | 2 of 7 | 2664 |
| gRPC | 2 of 2 | 1978 |
Every result
Alpha Round, 18 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 | 3,947,346 | 1.04ms | 1.56ms | 6157.2% | 1.2GiB |
| Connection | Pipelined | 4,096 | 45,708,428 | 1.43ms | 2.73ms | 6479.0% | 1.5GiB |
| Connection | Short-lived | 4,096 | 2,613,832 | 1.43ms | 2.95ms | 5751.9% | 1.6GiB |
| Efficiency | Latency-10K | 1,024 | 9,980 | 86.1us | 110.0us | 30.2% | 854MiB |
| Efficiency | Latency-1M | 1,024 | 998,087 | 90.8us | 164.0us | 2236.3% | 900MiB |
| Workload | JSON TLS | 4,096 | 1,703,461 | 2.36ms | 205.72ms | 6156.2% | 1.7GiB |
| Workload | 8Gbit | 512 | 49,382 | 115.1us | 622.0us | 289.3% | 1.0GiB |
| HTTP/2 | Baseline | 256 | 14,467,569 | 1.05ms | 51.62ms | 1473.8% | 1.2GiB |
| HTTP/2 | Baseline | 1,024 | 14,137,905 | 3.46ms | 81.28ms | 1613.7% | 2.1GiB |
| HTTP/2 | Static | 256 | 1,178,212 | 7.45ms | 33.72ms | 6073.4% | 1.5GiB |
| HTTP/2 | Static | 1,024 | 1,042,076 | 30.22ms | 781.38ms | 6132.8% | 2.8GiB |
| HTTP/2 | Baseline (h2c) | 256 | 15,144,652 | 854us | 12.78ms | 1344.8% | 1.2GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 14,978,636 | 3.27ms | 24.32ms | 1454.2% | 2.5GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 13,644,450 | 15.42ms | 115.38ms | 1241.8% | 5.9GiB |
| gRPC | Unary | 256 | 7,039,343 | 2.16ms | 20.32ms | 1390.5% | 2.0GiB |
| gRPC | Unary | 1,024 | 6,900,612 | 8.77ms | 127.89ms | 1605.4% | 3.4GiB |
| gRPC | Unary TLS | 256 | 6,951,550 | 2.16ms | 23.64ms | 1535.9% | 2.0GiB |
| gRPC | Unary TLS | 1,024 | 6,575,246 | 8.63ms | 99.81ms | 1756.7% | 3.9GiB |
Compared with
The Java entries around cardigan on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs cardigan | |
|---|---|---|---|
| vertx | 5324 | +1% | head to head |
| micronaut | 4443 | -16% | head to head |
| quarkus-jvm | 3788 | -28% | head to head |
Compare cardigan with any Java entry · Compare cardigan with any entry, in any language · Every Java entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry