This release brings many new GraalVM features, as well as Java 21 features. For example, virtual threads from Project Loom are now fully supported on GraalVM, including Native Image — you no longer need to enable them as a preview feature.
Now, let’s look at what’s in this release! Keep reading to learn what’s new in Native Image and GraalVM JDK, and go to the related blog post for updates to Truffle and GraalVM languages.
In our previous release blog post, we shared performance comparisons on the example of Spring Petclinic: we showed how Native Image is ahead of JIT in several performance metrics, such as startup, memory usage, requests/GB-s, and latency. With this release, for the same Petclinic app we see Native Image outperforming JIT.
The application running on Oracle GraalVM Native Image with profile-guided optimizations (PGO) and the G1 GC achieves a peak throughput of 13'075 requests per second, while the same application running on JIT with C2 JIT compiler and the same G1 GC achieves only 12'488 requests per second.