You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2026-05-04-semeru-scc.adoc
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,15 +3,15 @@ layout: post
3
3
title: 'Faster Startup on IBM Semeru with OpenJ9 Shared Classes Cache'
4
4
date: 2026-05-06
5
5
tags: performance aot semeru
6
-
synopsis: 'Quarkus 3.35 brings great startup improvements to IBM Semeru Runtimes. The same `quarkus.package.jar.aot.enabled=true` flag that activates Project Leyden on OpenJDK now automatically generates an OpenJ9 Shared Classes Cache - no code changes needed.'
6
+
synopsis: 'Quarkus 3.35 brings great startup improvements to IBM Semeru Runtimes. The same `quarkus.package.jar.aot.enabled=true` flag that activates Project Leyden on HotSpot-based JVMs now automatically generates an OpenJ9 Shared Classes Cache - no code changes needed.'
7
7
author: geoand
8
8
---
9
9
10
-
Slow startup times have long been a challenge for Java applications. Project Leyden addressed this for OpenJDK 25+, but what about IBM Semeru users?
10
+
Slow startup times have long been a challenge for Java applications. Project Leyden addressed this for JVMs like Temurin 25+, which are based on HotSpot, but what about users of JVMs based on IBM OpenJ9 like Semeru?
11
11
12
12
In our https://quarkus.io/blog/leyden-2/[previous post], we described how we integrated Project Leyden into Quarkus, bringing JVM startup way down.
13
13
14
-
But not everyone runs OpenJDK.
14
+
But not everyone runs HotSpot-based JVMs.
15
15
16
16
Many teams, especially in enterprise environments, run https://www.ibm.com/semeru-runtimes[IBM Semeru Runtimes], IBM's production Java runtime built on the https://eclipse.dev/openj9/[Eclipse OpenJ9] JVM.
17
17
These teams deserve the similar startup improvements, with the same ease of use.
@@ -131,11 +131,11 @@ When `quarkus.package.jar.aot.enabled=true` is set and no explicit type is confi
131
131
| Shared Classes Cache (`-Xshareclasses`)
132
132
| `app-scc/` directory
133
133
134
-
| OpenJDK 25+
134
+
| HotSpot (25+)
135
135
| Leyden AOT (`-XX:AOTCache`)
136
136
| `app.aot` file
137
137
138
-
| Older OpenJDK
138
+
| Older HotSpot
139
139
| AppCDS (`-XX:SharedArchiveFile`)
140
140
| `app-cds.jsa` file
141
141
|===
@@ -155,7 +155,7 @@ Valid values are `AUTO` (the default), `AOT`, `AppCDS`, and `SCC`.
155
155
156
156
This is the design decision we are most proud of in this work. Your build configuration, CI pipeline, and Dockerfile don't need to know which JVM will run the application. Set `quarkus.package.jar.aot.enabled=true`, and the build adapts.
157
157
158
-
This matters in practice. Teams that standardize on Semeru for some services and OpenJDK for others can use the same Quarkus build configuration everywhere. Switching JVMs doesn't require touching `application.properties`.
158
+
This matters in practice. Teams that standardize on Semeru for some services and HotSpot for others can use the same Quarkus build configuration everywhere. Switching JVMs doesn't require touching `application.properties`.
159
159
160
160
It also means that the Quarkus documentation, guides, and examples work the same way regardless of the JVM.
161
161
When we write "enable AOT for faster startup," that statement is true whether you run HotSpot, Semeru, or an older JDK.
@@ -185,7 +185,7 @@ While the user experience is intentionally identical, there are a few technical
185
185
| Single step: cache is populated during the training run itself
186
186
187
187
| *JVM requirement*
188
-
| OpenJDK 25+
188
+
| Version >=25
189
189
| Any IBM Semeru version
190
190
191
191
| *Maturity*
@@ -286,7 +286,7 @@ We would like to thank the OpenJDK team at IBM for their collaboration. The disc
286
286
287
287
== Conclusion
288
288
289
-
The beauty of this integration is its simplicity: one flag, multiple JVMs, optimal performance everywhere. Whether you're running OpenJDK or IBM Semeru, Quarkus has you covered, as Quarkus has always been about meeting developers where they are.
289
+
The beauty of this integration is its simplicity: one flag, multiple JVMs, optimal performance everywhere. Whether you're running HotSpot or Semeru, Quarkus has you covered, as Quarkus has always been about meeting developers where they are.
290
290
291
291
We will continue tracking developments in both Project Leyden and OpenJ9 to bring you the best performance on whatever platform you choose.
0 commit comments