Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Devoxx Morocco 2025 - Like Spring but faster: T...

Devoxx Morocco 2025 - Like Spring but faster: The new Java Jedi

Spring dominates the Java landscape, but are you aware of other similar yet different frameworks out there?

Let me show you Quarkus, the new Java Jedi. I'll expose the cape, digging into the inner workings of both Spring Boot and Quarkus, showing how the concepts and conventions familiar to Spring developers actually work. I'll show what Quarkus does with those same concepts and conventions to make it so resource efficient.

If someone asked you if you wanted to save 50% in your Java application operational costs, wouldn't you be interested? Come to this session to learn how!

Avatar for Eric Deandrea

Eric Deandrea PRO

November 12, 2025
Tweet

More Decks by Eric Deandrea

Other Decks in Technology

Transcript

  1. @edeandrea Who’s on Stage Today? Eric Deandrea 🤘 26+ years

    software development experience Java Champion 🤘 Contributor to Open Source projects Quarkus LangChain4j (& Quarkus LangChain4j) Docling-java Spring Boot, Spring Framework, Spring Security Wiremock Microcks 🤘 Boston Java Users ACM Chapter Vice Chair 🤘 Published author
  2. @edeandrea • How Quarkus enables modern Java development & the

    Kubernetes-native experience • Introduce familiar Spring concepts, constructs, & conventions and how they map to Quarkus • Emphasis on testing patterns & practices https://red.ht/quarkus-spring-devs
  3. @edeandrea Build Time Runtime Packaging (maven, etc) gradle…) Load config

    file from file system Parse it Classpath scanning to find annotated classes Attempt to load class to enable/disable features Build its model of the world. Start the management (thread, pool…) @ @ </> How Does a Framework Start?
  4. @edeandrea JVM Build Time @ @ </> Package model Native

    The Quarkus Way enables Native Compilation
  5. @edeandrea What’s the Secret Sauce? 🤘Don’t be dynamic 🤘Dead code

    elimination / inlining Holly Cummins - https://youtu.be/vnrXXvnqriA
  6. @edeandrea What’s the Secret Sauce? 🤘Don’t be dynamic 🤘Dead code

    elimination / inlining 🤘Extensible build process so libraries can participate 🤘Jandex Indexing (offline reflection) Holly Cummins - https://youtu.be/vnrXXvnqriA
  7. @edeandrea What’s the Secret Sauce? 🤘Don’t be dynamic 🤘Dead code

    elimination / inlining 🤘Extensible build process so libraries can participate 🤘Jandex Indexing (offline reflection) 🤘Don’t make humans tell the computer what it knows Holly Cummins - https://youtu.be/vnrXXvnqriA
  8. @edeandrea What’s the Secret Sauce? 🤘Don’t be dynamic 🤘Dead code

    elimination / inlining 🤘Extensible build process so libraries can participate 🤘Jandex Indexing (offline reflection) 🤘Don’t make humans tell the computer what it knows 🤘Continuous profiling & shaving 🤘Be reactive without forcing humans to do reactive Holly Cummins - https://youtu.be/vnrXXvnqriA
  9. @edeandrea JVM Native Quarkus Spring Boot Ratio (Quarkus / SB)

    Spring Boot (w/AOT) Ratio (Quarkus / SB AOT) Quarkus Spring Boot Ratio (Quarkus / SB) Framework version 3.29.0 3.5.7 3.5.7 3.29.0 3.5.7 Build time (s) 13.55 7.92 171.12% 11.27 120.2% 138.18 211.03 64.06% Av. RSS after startup (MB) 201.72 276.27 73.02% 262.31 76.9% 72.87 162.64 44.8% Av. time to 1st req (ms) 3,439.67 5,576.67 61.68% 5,009.67 68.66% 229.33 242.67 94.51% Av. RSS after 1st req (MB) 256.82 319.72 80.33% 303.6 84.59% 81.47 165.31 49.28% Av. throughput (req/sec) 29,666.11 7,970.79 372.19% 7,819.9 379.37% 17,122.59 6,519.28 262.65% Max throughput density (req/sec/MB) 56.24 13.29 423.24% 13.46 417.96% 70.43 18 391.24% Build RSS (GB) 6.2 7.35 84.35% Binary Size (MB) 95.38 158.38 60.22% Don’t Take My Word For It! Some real numbers (8 cores, 14GB RAM, GraalVM CE 21.0.2) https://github.com/quarkusio/benchmarks
  10. @edeandrea 🤘 Spring Boot 3 application contents: ◦ 39,979 classes

    ◦ 85,685 fields ◦ 284,659 methods ◦ Reflection: ◦ 11,219 classes ◦ 2,132 fields ◦ 13,163 methods 🤘 Quarkus 3 application contents: ◦ 25,502 classes ◦ 49,447 fields ◦ 201,782 methods ◦ Reflection: ◦ 7,369 classes ◦ 361 fields ◦ 6,465 methods 🤘 The Quarkus application has: ◦ 14,477 (36%) less classes ◦ 36,238 (42%) less fields ◦ 82,877 (29%) less methods ◦ 3,850 (34%) less classes using reflection ◦ 1,771 (83%) less fields using reflection ◦ 6,698 (51%) less methods using reflection A Real Example https://github.com/quarkusio/benchmarks
  11. @edeandrea ﺷ ﻜ ﺮ ً ا ﻟ ﻚ ! Merci!

    Thank You! Slides Rate this talk