Visit Azul.com Support

21.01.0.0

Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

21.01.0.0

Release Notes PDF

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:[/-]UseSeaOfNodesC2 command-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:+UseCRS command-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.interfaces and org.openeddsa.java.security.spec packages.

    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.security file

       
      security.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());

Resolved Issues

Issue ID Description

ZVM-18362

A compiler crash due to incorrect transformation of Compare And Swap on an unescaped object.

ZVM-18233

21.01.0.0 20.08.201.0

Known Issues

There are no new issues to report in this release.