Author: Karsten Silz
Jul 8, 2025   |  updated Jul 8, 2025 5 min read

Permalink: https://betterprojectsfaster.com/learn/talk-java-forum-stuttgart-2025-java-startup/

Java Forum Stuttgart 2025: "Wie kann ich Java schneller starten – und wann lohnt sich das?"

Java Forum Stuttgart 2025 logo

Summary

Coming soon!

Table Of Contents

Logistics

Conference

Java Forum Stuttgart 2025 is one of the largest Java conferences in Germany. It will run on July 10, 2025.

You can buy a ticket here:

Talk

My talk will be on July 10, 2025, at 9:50.

Abstract

German

So können Java-Anwendungen schneller starten – sortiert nach aufsteigendem Geschwindigkeitsgewinn: Framework-Tuning, Class Data Sharing (CDS), Project Leyden/JEP 483 (ab Java 24), CRaC und GraalVM Native Image. Aber: Je schneller der Start, desto größer sind Aufwand und Beschränkungen. Das kann sich lohnen, weil die Uptime der Anwendung steigt, die Anzahl der Standby-Instanzen sinkt oder Serverless Computing billiger wird.

Der Vortrag demonstriert mit einem Spring-Boot-Beispiel-Projekt alle Optionen, erklärt Vor- und Nachteile und gibt Hinweise für die Wirtschaftlichkeitsberechnung.

English

This is how Java applications can start faster – sorted by ascending speed gains: Framework tuning, Class Data Sharing (CDS), Project Leyden/JEP 483 (from Java 24 onward), CRaC, and GraalVM Native Image. However: The faster the startup, the greater the effort and limitations. This can be worthwhile because application uptime increases, the number of standby instances decreases, or serverless computing becomes cheaper.

The talk demonstrates all options using a Spring Boot example project, explains pros and cons, and provides guidance for cost-benefit calculations.

Who Made Me the Expert?

In the spring of 2022, I was the editor of a highly popular, six-part article series about native Java on InfoQ. I wrote several articles about Project Leyden, CRaC, and GraalVM Native Image and gave talks about them, too.

Slides

Here are the slides as PDF. They have more content and more text than my talking slides. They are just 0.4 MB:

You can also get the slides in their original Keynote format. “Keynote” is Apple’s presentation application. Why would you do that? My slides have less text than the PDF version, so you can see what I cut. I also animated the slides, so they are more pleasant to watch. Or maybe you want to peek under the hood to see how I achieved specific effects. The slides also have fewer words than the PDF ones - it’s a talk, not a read! But they do have speaker notes. These slides are 6 MB.

Benchmark Repo

The repo is a fork of the official Spring Petclinic. I added the shell scripts for building the project (compile-and-run.sh) and for the training and benchmark runs (benchmark.sh), added a small library for CRaC, and ignored some of the files. The scripts are only tested for Linux and macOS!

You can run the six benchmarks yourself with ./compile-and-run.sh [scenario], where scenario is one of these:

  • baseline: The baseline scenario of plain Spring Boot – option 0 in my talk. Needs JDK 21.
  • tuning: Spring Boot tuning – option 1 in my talk. Needs JDK 21.
  • cds: Class Data Sharing – part of option 2 in my talk. Needs JDK 21.
  • leyden: Project Leyden – part of option 2 in my talk. Needs a pre-release version of JDK 25.
  • crac: Project CraC - option 3 in my talk. Needs JDK 24 from Azul with CRaC support and only works in Linux.
  • graalvm: GraalVM Native Image – option 4 in my talk. Needs GraalVM Oracle JDK 24.

Additional Talk Information

Intro

Here is the six-part article series about native Java on InfoQ from 2022. I wasn’t the author, I was the editor. The articles and news items I wrote are here.

Section “Lohnt sich das?” (“Is it worth it”?)

Section “Wie schneller?” (“How faster?”)

Spring Boot Tuning

Class Data Sharing & Project Leyden

Project CRaC

GraalVM Native Image

  • This is the GraalVM documentation of Native Image. And here’s the Spring Boot documentation for it.
  • These are features that are impossible with GraalVM Native Image:
    • to create new classes and methods at runtime,
    • to execute new bytecode.
    • rather exotic classloader features, and
    • Java Agents (used for observability, for instance).
  • Here are features that only work partially:
    • AWT and JavaFY (not on macOS),
    • JMX,
    • many Java Flight Recorder datapoints, and
    • some testing frameworks.
  • These features require configuraiton:
    • reflection, and
    • explicit class loading,

Part 26 of 26 in the Conference Talks series.
JAX London 2023: "When Is Native Java With GraalVM Worthwhile for Me?" » | Start: Java Forum Stuttgart 2019: "When Using the Application Generator Jhipster Is Worth It - and When Not"

Java Tech Popularity Index Q1/2024:
Developer job ads down 32% year over year, Stack Overflow questions dropped 55% since ChatGPT. I now recommend IntelliJ Community Edition because many AI code assistants don't run in Eclipse. Job ads for Quarkus hit an all-time high.

Read my newsletter