quarkus-jvm
Flagship · Java · engine: netty · tuned configuration
Quarkus with RESTEasy Reactive on Vert.x/Netty, JDK 21, optimized JVM tuning.
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. 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 | 27 of 97 | 486 |
| HTTP/2 | 2 of 29 | 302 |
| gRPC | 3 of 8 | 137 |
Every result
Alpha Round, 31 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 | 512 | 1,741,705 | 293us | 538us | 6602.2% | 4.3GiB |
| Connection | Baseline | 4,096 | 1,777,039 | 2.30ms | 4.51ms | 6409.0% | 8.4GiB |
| Connection | Pipelined | 512 | 7,832,208 | 1.04ms | 2.23ms | 6236.0% | 10.1GiB |
| Connection | Pipelined | 4,096 | 8,126,275 | 8.05ms | 16.60ms | 6130.1% | 10.0GiB |
| Connection | Short-lived | 512 | 564,915 | 898us | 8.88ms | 2948.1% | 1.3GiB |
| Connection | Short-lived | 4,096 | 574,869 | 7.08ms | 73.00ms | 3030.2% | 2.2GiB |
| Workload | JSON | 4,096 | 717,328 | 5.41ms | 27.40ms | 6554.9% | 10.3GiB |
| Workload | JSON Comp | 512 | 297,811 | 1.72ms | 6.37ms | 6292.0% | 6.7GiB |
| Workload | JSON Comp | 4,096 | 294,552 | 13.87ms | 35.60ms | 6436.7% | 10.2GiB |
| Workload | JSON Comp | 16,384 | 294,023 | 54.97ms | 124.00ms | 6415.1% | 10.6GiB |
| Workload | Upload | 32 | 1,289 | 24.85ms | 85.90ms | 3980.5% | 6.7GiB |
| Workload | Upload | 256 | 1,791 | 138.28ms | 742.90ms | 6567.2% | 10.4GiB |
| Workload | Static | 1,024 | 828,338 | 1.24ms | 1.24ms | 6512.0% | 8.3GiB |
| Workload | Static | 4,096 | 804,331 | 5.48ms | 5.48ms | 6459.9% | 10.2GiB |
| Workload | Static | 6,800 | 776,101 | 8.76ms | 8.76ms | 6346.1% | 10.3GiB |
| Database | Async DB | 1,024 | 128,893 | 7.50ms | 45.80ms | 3518.7% | 8.5GiB |
| Multi-endpoint | API-4 | 256 | 43,895 | 4.22ms | 19.40ms | 400.3% | 810.3MiB |
| Multi-endpoint | API-16 | 1,024 | 103,737 | 8.02ms | 44.40ms | 1574.4% | 2.4GiB |
| HTTP/2 | Baseline | 256 | 4,644,300 | 5.69ms | 5.69ms | 6210.1% | 10.3GiB |
| HTTP/2 | Baseline | 1,024 | 4,476,540 | 22.74ms | 22.74ms | 6094.4% | 10.4GiB |
| HTTP/2 | Static | 256 | 429,941 | 58.46ms | 58.46ms | 4526.4% | 10.7GiB |
| HTTP/2 | Static | 1,024 | 402,644 | 238.85ms | 238.85ms | 4483.3% | 11.5GiB |
| HTTP/2 | Baseline (h2c) | 256 | 6,188,551 | 4.12ms | 4.12ms | 6161.5% | 10.2GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 6,180,019 | 15.99ms | 15.99ms | 6016.8% | 10.1GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 6,109,902 | 63.52ms | 63.52ms | 6043.4% | 10.6GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 1,034,480 | 31.04ms | 31.04ms | 6321.0% | 10.2GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 1,039,944 | 120.01ms | 120.01ms | 6365.2% | 10.7GiB |
| gRPC | Unary | 256 | 2,622,540 | 10.26ms | 10.26ms | 5754.5% | 10.4GiB |
| gRPC | Unary | 1,024 | 2,611,600 | 39.79ms | 39.79ms | 5558.7% | 10.4GiB |
| gRPC | Unary TLS | 256 | 2,633,400 | 10.78ms | 10.78ms | 5783.5% | 10.4GiB |
| gRPC | Unary TLS | 1,024 | 2,572,680 | 39.73ms | 39.73ms | 5659.5% | 10.5GiB |
How the benchmark is run · The machine · Add or fix an entry