21.01.0.0 20.08.201.0
21.01.0.0
21.01.0.0
Release date: January 29, 2021
This release corresponds to the following OpenJDK versions:
| Major Version | OpenJDK Version |
|---|---|
7 |
7u292 |
8 |
8u282 |
11 |
11.0.10+9 |
13 |
13.0.6+5 |
What’s New
-
C2 Improvement
The default JIT compiler on Zing JDK 8 and JDK 7 is changed from SeaOfNodesC2 to KestrelC2 when Zing C2 mode is enabled with
-XX:+UseC2.For Zing JDK 11, this improvement was made in Zing 20.04.0.0.
KestrelC2 is a C2 implementation introduced to Zing in 2020. It is based on a lightweight use of the LLVM backend and typically produces faster code than UseSeaOfNodesC2 while keeping compilation effort at similar levels. UseKestrelC2 generally exhibits a significantly lower compilation-time CPU consumption compared to Falcon.
See Using Zing Command-Line Options for
-XX:[/-]UseKestrelC2` and `-XX:[/-]UseSeaOfNodesC2command-line options and details.The default JIT compiler in Zing is the high-performance Falcon introduced in 2017.
-
New Experimental Features
Zing 21.01.0.0 includes optional experimental support for interaction with connected runtime services through an emerging protocol in Zing 11 and Zing 8.
These experimental capabilities are enabled by the
-XX:+UseCRScommand-line option and turned off by default. Being an experimental Zing option, it must be unlocked by preceding-XX:+UnlockExperimentalVMOptions. -
Performance Improvement
Zing 21.01.0.0 introduces an improved escape analysis for arrays in the Falcon compiler.
The improvement includes an optimization for array reallocation pattern (e.g., java.util.Arrays.copyOf) to avoid redundant copying. Notably, this optimization improves the performance of string concatenation using the StringBuilder class by the elimination of excessive reallocations of the underlying StringBuilder buffer.
-
Support for EdDSA Signature Algorithm
Zing 21.01.0.0 introduces the OpenEdDSA provider which can be used for cryptographic signatures using the Edwards-Curve Digital Signature Algorithm (EdDSA) in Zing 8 with no application or code changes. See JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA) for details.
The OpenEdDSA public API is provided in the
org.openeddsa.java.security.interfacesandorg.openeddsa.java.security.specpackages.To enable the OpenEdDSA provider, do either of the following:
-
configure the Java Runtime Environment for the OpenEdDSA provider by adding the entry below to the
$JAVA_HOME/jre/lib/security/java.securityfilesecurity.provider.10=org.openeddsa.security.OpenEdDSA -
add the OpenEdDSA provider directly to your code
// Add OpenEdDSA provider java.security.Security.addProvider(new org.openeddsa.security.OpenEdDSA());
-