Skip to content

Build1 publisher3 min readPublished

OpenJDK proposes JEP 544's ahead-of-time code compilation for JDK 28

OpenJDK has moved JEP 544, Ahead-of-Time Code Compilation, to Proposed to Target for JDK 28, with review due to close September 28, 2026. Teams that pay for slow Java startup can pencil it into JDK 28 plans, though sizing the gain will take their own measurements.

The Engineer · Build desk

Illustration accompanying OpenJDK proposes JEP 544's ahead-of-time code compilation for JDK 28

What happened

  • JEP 545, Faster Startup and Warmup with ZGC, moved from draft to Candidate in the same week.
  • Build 17 of the JDK 28 early-access builds shipped that week with fixes over Build 16.
  • Oracle Labs shipped GDK for Micronaut 5.1.5, whose modules are designed to compile ahead-of-time with GraalVM Native Image.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • decision Teams with a working Native Image build now have a second ahead-of-time path to test that keeps HotSpot as the runtime, and Oracle still fully supports the Native Image route.
  • constraint Until the September 28 review closes, JDK 28 targeting is only proposed, so an upgrade plan that depends on it needs a fallback.
  • cost The only performance claim on record is the JEP's own goal statement, so each team pays for its own startup and time-to-peak measurements before it can size the gain.

JEP 544's description makes two promises, and they are not equally easy to check. The first: startup and warmup improve because optimized native code is already available when the HotSpot JVM starts [2]. The second: applications reach peak performance sooner and then sustain it [3]. The first promise covers the first seconds of a process. The second is about the quality of that code over a long run, and it is the half I would want measured before believing it.

Proposed to Target is the stage after Candidate [1]. The review is expected to conclude on Monday, September 28, 2026 [4], seven days after the roundup that reported the change [1]. Until then, JDK 28 targeting is a proposal. The roundup does not include benchmark figures, the command-line flags involved, or whether Build 17 of the JDK 28 early-access builds [7] contains any JEP 544 code.

When benchmarks arrive, they will describe someone else's workload. For a startup number to transfer, a process has to start often enough that warmup is a real share of its life. Batch jobs and autoscaled replicas fit that description. A service that runs for weeks spends a small fraction of its uptime warming up. It collects the gain mostly at deploys and restarts.

GraalVM is still a supported path. In the same week, Oracle Labs shipped version 5.1.5 of the Graal Development Kit for Micronaut, a curated set of Micronaut modules designed to compile ahead-of-time with GraalVM Native Image and fully supported by Oracle [9]. GraalVM 25.4 also shipped, with new compiler optimization phases [10]. As JEP 544 describes it, the native code is available when the HotSpot JVM starts [2]. So the runtime stays HotSpot. A team with a working Native Image build gets a second option to test against it. A team that stayed on HotSpot gets a way to work on startup without changing runtimes.

The garbage collector is getting startup work too. JEP 545, Faster Startup and Warmup with ZGC, moved to Candidate with a proposal to "improve application startup and warmup by enhancing the Z Garbage Collector to acquire and prepare physical memory more swiftly and efficiently in response to application needs" [5]. JEP 546, Adaptive Heap Sizing for ZGC, reached Candidate at the same time [6]. Both sit one stage behind JEP 544 [2].

For a team that cares about startup, I think the right move this month is a baseline. I would add startup time and time-to-peak to whatever JDK 28 early-access testing already runs. Then the comparison numbers exist on the day a build carries JEP 544. OpenJDK asks developers to report JDK 28 bugs through the Java Bug Database [8].

What to watch

  • Whether the review closing September 28, 2026 moves JEP 544 from Proposed to Target to Targeted for JDK 28.
  • The first JDK 28 early-access build that includes JEP 544, and startup and time-to-peak numbers measured on real services.
  • Whether JEP 545's ZGC startup work gets a release target alongside JEP 544.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories