Skip to content

Commit c6baf58

Browse files
committed
Blog post: Continued Focus on Native
1 parent a951b34 commit c6baf58

File tree

3 files changed

+146
-0
lines changed

3 files changed

+146
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
---
2+
layout: post
3+
title: 'Continued Focus on Native'
4+
date: 2025-11-03
5+
tags: mandrel, native, graalvm
6+
synopsis: 'Quarkus continues to focus on native for swift start-up time and low memory footprint.'
7+
author: sgehwolf
8+
---
9+
:imagesdir: /assets/images/posts/continued-focus-native
10+
11+
From its inception, Quarkus has offered the ability to compile Java
12+
applications into native binaries. This feature is crucial for achieving rapid
13+
startup times and reduced memory consumption, two properties that remain
14+
paramount to Quarkus' mission and that Quarkus remains committed to.
15+
16+
We have already started preparing for the adoption of GraalVM 25 (via our
17+
Mandrel distribution), and expect to switch to it as the primary native builder
18+
in the near future.
19+
20+
Quarkus uses the Mandrel GraalVM distribution to ensure continuity of updates
21+
on native-image capabilities. https://quarkus.io/blog/mandrel-25-released[Mandrel 25] empowers Quarkus
22+
users to leverage the latest JDK innovations (JDK 25) and target cloud-native
23+
deployments through its native compilation capabilities. Our collaboration with
24+
the upstream GraalVM community during GraalVM 25’s development has strengthened
25+
our involvement, bringing these shared innovations directly to Quarkus users
26+
with the incorporation of the Mandrel 25 release.
27+
28+
Key improvements that Mandrel 25 and Quarkus are expected to bring:
29+
30+
* **Readiness for JDK 25 - Enhanced Compatibility and Stability:** Mandrel 25,
31+
based on OpenJDK 25, offers improved compatibility with the latest OpenJDK
32+
features and libraries, ensuring that Quarkus applications can leverage the
33+
full spectrum of the Java ecosystem while maintaining the stability and
34+
reliability expected of production-ready enterprise systems.
35+
* **Continued Focus on Key Metrics:** Mandrel 25 will be the technology of
36+
choice in order to deliver on the cloud-native performance goals of fast
37+
startup and low memory footprint of Quarkus releases for the next years to
38+
come. Quarkus continues to enable aggressive initialization at built time to
39+
achieve this.
40+
* **Enhanced Static Analysis Accuracy:** GraalVM 25 enables https://github.com/oracle/graal/pull/9821[Whole-Program
41+
Sparse Conditional Constant Propagation (WP-SCCP)] by default, improving the
42+
precision of points-to analysis in native image. This optimization enhances
43+
static analysis accuracy and scalability, potentially reducing the size of the
44+
final native binary.
45+
https://medium.com/graalvm/skipflow-producing-smaller-executables-with-graalvm-f18ca98279c2[More information on the GraalVM blog].
46+
* **Improved Error Reporting and Diagnostics:** When resources or certain
47+
reflective accesses aren't properly registered at image build time, it is now
48+
being appropriately flagged by raising a specific exception when building with
49+
Mandrel 25. Flags, `-XX:MissingRegistrationReportingMode=Warn` and
50+
`-XX:MissingRegistrationWarnContextLines=<#lines>` can be used to diagnose. The
51+
ability to handle `OutOfMemoryError` was added.
52+
* **Enhanced Monitoring Possibilities:** By leveraging Mandrel 25 more
53+
monitoring options of the deployed native Quarkus application binary become
54+
possible closing the gap between JVM mode and native mode. New JFR events, such
55+
as Socket IO and native memory tracking events as well as JFR allocation
56+
profiling becomes possible (via the `jdk.ObjectAllocationSample` event). The
57+
addition of https://www.graalvm.org/jdk25/reference-manual/native-image/debugging-and-diagnostics/jcmd/[Java Diagnostic Command]
58+
(JCMD) allows for triggering of certain actions on the running native image.
59+
The JFR monitoring feature of native image has been enhanced to be more
60+
configurable (via `-XX:FlightRecorderOptions`), previously only available in
61+
JVM mode. Native memory tracking can be optionally enabled in order to diagnose
62+
memory leaks (using `-Dquarkus.native.monitoring=nmt` at build time and
63+
`-XX:+PrintNMTStatistics` at runtime)
64+
* **Full Support for the Foreign Function & Memory (FFM) API:** Quarkus
65+
applications can now make use of full support of the FFM API (included in JVM
66+
mode since JDK 22) when compiling to native using Mandrel 25. Upcall and
67+
downcall support has been added for all supported Quarkus operating systems and
68+
architectures.
69+
70+
By seamlessly integrating Mandrel 25, and Quarkus’ continued focus on developer
71+
joy and productivity, together with new and emerging AI capabilities further
72+
solidifies Quarkus position as the premier framework for building
73+
high-performance, cloud-native Java applications. Developers can confidently
74+
leverage these advancements to deploy applications that are not only efficient
75+
but also deliver exceptional user experiences. Quarkus and Mandrel 25 combine
76+
to create a powerful synergy that pushes the boundaries of Java in today's
77+
modern computing landscape. This combination delivers on Quarkus’s Cloud Native
78+
Mission, offering swift start-up times and a low memory footprint.
79+
80+
81+
[[looking-ahead]]
82+
== Looking Ahead
83+
84+
Beyond GraalVM 25, we are tracking the evolution of GraalVM closely as we have
85+
done in the past and will continue to work with the GraalVM team to evolve
86+
accordingly and ensure that Quarkus integrates well with it. We are looking
87+
forward to exciting new features, not least:
88+
89+
1. https://github.com/oracle/graal/issues/12237[Shenandoah GC] integration
90+
2. https://github.com/oracle/graal/issues/11327[Project Crema] and dynamic
91+
Java on top of native-image. This will unlock Java use cases that today
92+
cannot run as native-image
93+
3. https://github.com/oracle/graal/issues/7626[Native Image Layers] to make
94+
it possible to tune performance vs. usability
95+
4. Polyglot - First-class https://www.graalvm.org/jdk25/reference-manual/js/[JavaScript],
96+
https://www.graalvm.org/python/[Python] and
97+
https://www.graalvm.org/webassembly/docs/[Wasm] integrations
98+
99+
[[community-collab]]
100+
== GraalVM Community Collaboration and GraalVM Summit
101+
102+
The collaboration between Quarkus, Mandrel and GraalVM developers continues to
103+
be strong. What’s more, Mandrel is being developed as part of the GraalVM
104+
Github organization and the GraalVM for JDK 21 community effort was established
105+
as part of those community gatherings. Mandrel developers assumed maintainer
106+
roles for the https://github.com/graalvm/graalvm-community-jdk21u/[GraalVM
107+
for JDK 21 maintenance repository]. We hope to establish a similar model for
108+
GraalVM 25 and its downstream, Mandrel 25. The Mandrel team is certainly
109+
interested in stepping up for community maintenance of GraalVM 25 when the time
110+
comes.
111+
112+
image::summit_2025_crowd_banner.png[GraalVM Summit 2025 - Crowd]
113+
114+
For the past few years Quarkus and Mandrel developers have been attending the
115+
GraalVM Community summit. A powerful platform to exchange ideas and experience
116+
with the GraalVM technology. In 2025, five Quarkus/Mandrel developers attended
117+
the GraalVM Community Summit. We believe the event was a great success. These
118+
gatherings are tantamount to the Quarkus and GraalVM collaboration. We were
119+
glad to see that there is shared interest in making the public
120+
https://github.com/oracle/graal/[GraalVM github repository] a true upstream
121+
with an open governance model. This would further strengthen the GraalVM
122+
community and would help self-sustain certain areas. Some of this has been
123+
already tested with the
124+
https://github.com/graalvm/graalvm-community-jdk21u/[GraalVM for JDK 21
125+
upstream] community repository.
126+
127+
image::grid_people.png[Quarkus/Mandrel Developers at the GraalVM 2025 Summit]
128+
129+
[[commitment-to-subatomic-java]]
130+
== Commitment to delivering "Supersonic Subatomic Java"
131+
132+
The Quarkus project will continue to evaluate and incorporate the best
133+
available technologies to ensure its users benefit from optimal reliability,
134+
performance, and efficiency. This includes exploring advancements in all
135+
technologies and runtime environments as they evolve, such as project Leyden.
136+
Our goal remains to ensure that Quarkus remains at the forefront of
137+
cloud-native Java development. Our commitment is to provide developers with the
138+
flexibility to choose the tools that best fit their project's needs, while
139+
always delivering on our promise of "Supersonic Subatomic Java", and provide
140+
optimal, highly efficient deployment formats for a broad range of environments.
141+
142+
Onward with Quarkus Native!
143+
144+
You can share your feedback with us in Quarkus'
145+
https://quarkusio.zulipchat.com/[Zulip chat workspace] or on
146+
https://github.com/quarkusio/quarkus/[GitHub].
1.69 MB
Loading
777 KB
Loading

0 commit comments

Comments
 (0)