Paul Krill
Editor at Large

Oracle releases ML-optimized GraalVM for JDK 24

news
Mar 25, 20253 mins
Development Libraries and FrameworksJavaMachine Learning

GraalVM JDK release features a new generation of ML-enabled profile inference that boosts peak performance nearly 8% on average on microservices benchmarks.

Oracle has released GraalVM for JDK 24, an alternative Java Development Kit tuned to just-released JDK 24 that uses ML (machine learning)-based profile inference to boost peak performance by about 7.9% on average on microservices benchmarks, the company said.

GraalVM for JDK 24 was released on March 18. GraalVM for JDK 24 can be downloaded from graalvm.org.

With this latest update, a new generation of ML-enabled inference, called GraalNN, is being introduced. GraalNN provides context-sensitive static profiling with neural networks. Oracle said it has seen a roughly 7.9% peak performance improvement on average on a wide range of microservices benchmarks including Micronaut, Spring, and Quarkus. Native Image in Oracle GraalVM has used a pre-trained ML model to predict execution probabilities of control flow graph branches, enabling powerful optimizations and better peak performance of native images, according to Oracle. GraalVM compiles a Java application to a native binary, which starts up 100x faster, provides peak performance with no warmup, and uses less memory and CPU than an application running on a Java Virtual Machine (JVM), the company said.

Also in this release is the introduction of SkipFlow, an extension of points-to-flow analysis that tracks primitive values and evaluates branching conditions during the run of the analysis. SkipFlowΒ enables production of smaller binaries without increasing the build time. Image builds tend to be slightly faster with SkipFlow enabled because of fewer methods to compile and analyze, Oracle said.

GraalVM for JDK 24 also takes a first step toward Java agent support at runtime. Until now, agents have been supported by Native Image but with constraints, such as the agent having to run and transform all classes at build time. Oracle has continued work to optimize more vector API operations on GraalVM, with more operations now efficiently compiled to SIMD (single instruction, multiple data) code, where supported by the target hardware.

Other improvements in GraalVM for JDK 24 include:

  • Experimental support for jcmd on Linux and macOS. jcmd is used to send diagnostic command requests that are useful for controlling Java Flight Recordings, troubleshooting, and diagnosing applications.
  • Additional security features in Native Image including support for dependency trees.
  • The "customTargetConstructorClass" field has been removed from serialization JSON metadata. All possible constructors now are registered by default when registering a type for serialization.
  • Support has been added for Java module system-based service loading.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a β€œBest Technology News Coverage” award from IDG.

More from this author