Explore by language

java web framework benchmarks

Benchmark results for 20 java web frameworks, measured with zrk at concurrency 64, 256, 512. Fastest at concurrency 64: activej with 227 183 requests per second.

Compare throughput and latency together. These measurements describe a specific workload and test environment; performance in your application may differ.

Concurrency 64

java frameworks at concurrency 64, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 activej 5.5 227 183 0.26 ms 0.53 ms 0
2 jooby 4.5 204 943 0.28 ms 0.59 ms 0
3 rapidoid 5.5 192 357 0.33 ms 0.50 ms 0
4 vertx 5.1 188 779 0.31 ms 0.64 ms 0
5 vertx4web 5.1 176 773 0.33 ms 0.68 ms 0
6 undertow 2.4 160 027 0.39 ms 1.08 ms 0
7 light-4j 2.2 154 873 0.18 ms 4.76 ms 0
8 helidon-se 27 154 582 0.24 ms 0.36 ms 0
9 quarkus 3.39 143 177 0.41 ms 0.85 ms 0
10 aspectran 9.8 122 745 0.20 ms 5.31 ms 0
11 micronaut 5 110 704 0.23 ms 7.55 ms 0
12 restheart 9.8 106 420 0.56 ms 1.45 ms 0
13 armeria 1.41 73 067 0.33 ms 7.73 ms 0
14 spark 2.9 71 650 0.77 ms 2.55 ms 0
15 javalin 7.2 65 850 0.97 ms 2.82 ms 0
16 spring-webflux 4.1 65 849 0.85 ms 2.77 ms 0
17 blade 2.1 51 726 0.51 ms 7.35 ms 0
18 jersey3-grizzly2 3.1 42 741 1.04 ms 7.31 ms 0
19 jersey-grizzly2 4 41 893 1.06 ms 7.30 ms 0
20 struts2 7 19 997 2.88 ms 24.57 ms 0

Concurrency 256

java frameworks at concurrency 256, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 activej 5.5 209 294 1.21 ms 1.68 ms 0
2 jooby 4.5 193 466 1.31 ms 1.95 ms 0
3 vertx 5.1 174 719 1.44 ms 2.26 ms 0
4 rapidoid 5.5 164 072 1.56 ms 1.68 ms 0
5 vertx4web 5.1 163 855 1.54 ms 2.36 ms 0
6 undertow 2.4 152 199 1.73 ms 2.28 ms 0
7 light-4j 2.2 151 212 0.93 ms 9.42 ms 0
8 helidon-se 27 140 929 1.68 ms 2.38 ms 0
9 quarkus 3.39 136 113 1.85 ms 2.66 ms 0
10 aspectran 9.8 133 181 0.78 ms 10.47 ms 0
11 micronaut 5 114 695 1.07 ms 9.87 ms 0
12 restheart 9.8 102 959 2.50 ms 2.73 ms 0
13 armeria 1.41 83 613 1.53 ms 10.36 ms 0
14 javalin 7.2 70 903 3.65 ms 8.10 ms 0
15 spark 2.9 70 261 3.50 ms 7.53 ms 0
16 spring-webflux 4.1 67 698 3.75 ms 4.74 ms 0
17 blade 2.1 55 310 3.56 ms 19.27 ms 0
18 jersey-grizzly2 4 49 763 4.82 ms 11.22 ms 0
19 jersey3-grizzly2 3.1 49 297 4.85 ms 11.27 ms 0
20 struts2 7 23 266 7.61 ms 156.21 ms 0

Concurrency 512

java frameworks at concurrency 512, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 activej 5.5 204 508 2.49 ms 3.12 ms 0
2 jooby 4.5 189 359 2.67 ms 3.86 ms 0
3 vertx 5.1 171 697 2.94 ms 4.03 ms 0
4 vertx4web 5.1 161 688 3.13 ms 4.20 ms 0
5 rapidoid 5.5 156 584 3.27 ms 3.77 ms 0
6 undertow 2.4 150 308 3.44 ms 4.36 ms 0
7 light-4j 2.2 146 988 2.12 ms 10.86 ms 0
8 helidon-se 27 137 795 3.54 ms 4.92 ms 0
9 quarkus 3.39 134 579 3.75 ms 4.97 ms 0
10 aspectran 9.8 128 727 2.71 ms 13.44 ms 0
11 micronaut 5 112 551 3.21 ms 12.96 ms 0
12 restheart 9.8 102 352 5.00 ms 6.11 ms 0
13 armeria 1.41 83 269 6.60 ms 14.00 ms 0
14 javalin 7.2 73 439 7.04 ms 15.17 ms 0
15 spark 2.9 71 140 7.01 ms 14.29 ms 0
16 spring-webflux 4.1 67 495 7.52 ms 8.78 ms 0
17 blade 2.1 56 217 7.62 ms 30.86 ms 0
18 jersey-grizzly2 4 49 440 9.97 ms 16.89 ms 0
19 jersey3-grizzly2 3.1 49 429 9.99 ms 16.91 ms 0
20 struts2 7 23 419 15.28 ms 342.91 ms 0