framework-benchmarks: Spring Boot 4.1.1 vs Quarkus 3.40.1 vs Micronaut 5.2.2, JVM + native, benchmarked
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
framework-benchmarks — consolidated results
|
||||
Sandbox: 2 vCPU / 7.8GiB RAM Linux container, GraalVM CE 25.4.4.1.1 (JDK 25.0.4.1.1)
|
||||
Versions under test: Spring Boot 4.1.1, Quarkus 3.40.1 (LTS), Micronaut 5.2.2
|
||||
All numbers are the average of 3 kept runs after discarding one cold-cache run (startup/memory),
|
||||
or one 15-second run at concurrency 20 (throughput). Raw per-run JSON in 01-04 in this directory.
|
||||
|
||||
STARTUP TIME (seconds, cold process to first 200 response)
|
||||
framework JVM native native is Nx faster
|
||||
spring-boot 6.318 0.132 47.9x
|
||||
quarkus 2.185 0.035 62.4x
|
||||
micronaut 2.507 0.041 61.1x
|
||||
|
||||
RESIDENT MEMORY (MB, RSS right after first successful request)
|
||||
framework JVM native native is Nx smaller
|
||||
spring-boot 229.2 79.5 2.9x
|
||||
quarkus 171.6 33.6 5.1x
|
||||
micronaut 180.0 46.2 3.9x
|
||||
|
||||
THROUGHPUT (requests/sec, GET /widgets, 20 concurrent stdlib-http.client workers, 15s)
|
||||
framework JVM req/s native req/s
|
||||
spring-boot 2275.7 4795.1
|
||||
quarkus 3791.4 4243.8
|
||||
micronaut 4276.2 4961.2
|
||||
|
||||
DEPLOYMENT ARTIFACT SIZE (MB)
|
||||
framework JVM (fat jar / fast-jar dir) native executable
|
||||
spring-boot 23 73
|
||||
quarkus 21 44
|
||||
micronaut 14 54
|
||||
|
||||
NATIVE BUILD TIME (wall clock, 2 vCPU, this sandbox — native-image is CPU-bound and
|
||||
parallelizes with available cores, so a bigger CI runner will be meaningfully faster)
|
||||
quarkus: 6m22s (succeeded on the first attempt)
|
||||
micronaut: 7m15s (succeeded on the 4th attempt — 3 earlier attempts failed in
|
||||
~42-50s each over a Netty/logback static-initialization clash;
|
||||
see docs/output/06-micronaut-native-build-failures.txt)
|
||||
spring-boot: 8m25s (succeeded on the first attempt, after routing around the
|
||||
native-maven-plugin's execution binding — see repo README)
|
||||
|
||||
Cross-checks against the independent 2025-10 benchmark by gillius.org (different
|
||||
hardware: Apple M2 Pro laptop vs this shared 2-vCPU container; different app: a
|
||||
Postgres-backed CRUD app vs this repo's deliberately DB-free one; Spring Boot 3.5.6/
|
||||
Quarkus 3.28.1/Micronaut 4.5.4 vs the current GA versions here) — see post for the full
|
||||
comparison table. Qualitatively consistent: native beats JVM mode by roughly one to two
|
||||
orders of magnitude on both startup and memory, in both benchmarks, on both machines.
|
||||
Reference in New Issue
Block a user