This repository hosts results and generated graphics of benchmark executions from the Quarkus performance lab, along with the graphics code for generating charts.
Images from this repository are available at https://quarkus.io/benchmarks urls. To construct a URL, use the path of the image relative to the images subdirectory. For example, http://quarkus.io/benchmarks/spring-quarkus-perf-comparison/tuned/results-latest-tuned-throughput-for-main-comparison-light.svg. See the Chart Reference section below for a complete table of all available charts.
Assuming you have a file called myfile.json in the expected data format, you can run:
git clone git@github.com:quarkusio/benchmarks.git # this repo!
mvn -f benchmarks/graphics-generator verify -DskipTests
mkdir -p images
java -jar benchmarks/graphics-generator/target/quarkus-app/quarkus-run.jar myfile.json images true
This will generate a set of plots in an images directory.
This diagram shows the architecture & workflow of how the benchmarking executes.
Benchmark source code: https://github.com/quarkusio/spring-quarkus-perf-comparison
This table provides direct links to all available charts. Charts are available in both light and dark themes, and in both png and svg formats.
| Group | Throughput | Boot & First Response | Memory RSS | Build Duration | Composite |
|---|---|---|---|---|---|
| Main Comparison Most recent versions of Quarkus vs Spring Boot in JIT and Native modes |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| All Every framework and configuration variant |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| AOT Comparison Ahead-of-time compiled JVM frameworks |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| Java and Native and AOT Frameworks Current-generation JIT, Native, and AOT (excludes legacy versions and virtual threads) |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| Java and Native Frameworks Standard JIT and GraalVM Native (excludes AOT and virtual threads) |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| Java Frameworks with Compatibility All JVM-based frameworks, including Quarkus with Spring compatibility layers |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| Quarkus All Quarkus variants (JIT, Native, Virtual Threads) |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
| Virtual Threads Frameworks using Java Virtual Threads (Loom) |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
☀️ png • ☀️ svg 🌙 png • 🌙 svg |
Note: All URLs follow the pattern https://quarkus.io/benchmarks/tuned/spring-quarkus-perf-comparison-latest-tuned-{metric}-for-{group}-{theme}.{format}
