Skip to content

Commit 4acbefc

Browse files
committed
Blog post: Continued Focus on Native
1 parent 084b167 commit 4acbefc

File tree

3 files changed

+147
-0
lines changed

3 files changed

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

0 commit comments

Comments
 (0)