GraalVM 21.2 Released With New Optimizations, Better Linux AArch64 Support
Oracle has published a new version of GraalVM, its open-source Java JVM/JDK implemented in Java that also supports other programming languages and execution modes. GraalVM continues to be quite an interesting effort given its various languages supported and interesting technical experiments/features in the name of greater Java performance and other innovative features.
GraalVM 21.2 is another interesting release both for the pure community open-source project and also some new extras only within GraalVM Enterprise too. Among the changes catching my eye with GraalVM 21.2 include:
- A speculative guard movement optimization has been added that tries to move a loop invariant guard inside a loop to now outside the loop. This improves GraalVM's SpecJVM2009 geometric mean score by about 4.2% and lesser in other Java benchmarks too.
- Various other optimizations and Graal compiler improvements, mostly smaller items.
- Linux AArch64 GraalVM builds are now released as "supported" with more features enabled like the Ruby runtime, Java on Truffle, and more.
- More mature support for Java 16.
- GraalVM Enterprise has added a "novel" SIMD vectorization optimization for sequential code. This SIMD vectorization feature isn't being enabled by default yet but can be activated with the "-Dgraal.VectorizeSIMD=true" option.
- The Polyglot runtime has a new compilation queuing heuristic leading to improved warmup times for many workloads.
- Java on Truffle has improved bytecode dispatch that can lead to a 15~30% interpreter speed-up.
- Improved Python performance.
The free/community edition of GraalVM 21.2 can be downloaded from GitHub. The full list of GraalVM 21.2 changes to its numerous software components can be found over on GraalVM.org.
GraalVM 21.2 is another interesting release both for the pure community open-source project and also some new extras only within GraalVM Enterprise too. Among the changes catching my eye with GraalVM 21.2 include:
- A speculative guard movement optimization has been added that tries to move a loop invariant guard inside a loop to now outside the loop. This improves GraalVM's SpecJVM2009 geometric mean score by about 4.2% and lesser in other Java benchmarks too.
- Various other optimizations and Graal compiler improvements, mostly smaller items.
- Linux AArch64 GraalVM builds are now released as "supported" with more features enabled like the Ruby runtime, Java on Truffle, and more.
- More mature support for Java 16.
- GraalVM Enterprise has added a "novel" SIMD vectorization optimization for sequential code. This SIMD vectorization feature isn't being enabled by default yet but can be activated with the "-Dgraal.VectorizeSIMD=true" option.
- The Polyglot runtime has a new compilation queuing heuristic leading to improved warmup times for many workloads.
- Java on Truffle has improved bytecode dispatch that can lead to a 15~30% interpreter speed-up.
- Improved Python performance.
The free/community edition of GraalVM 21.2 can be downloaded from GitHub. The full list of GraalVM 21.2 changes to its numerous software components can be found over on GraalVM.org.
25 Comments