Azul Platform Prime is a Java platform with a modern, TCK-compliant JVM, Azul Zing, based on OpenJDK. Zing provides low, consistent response latency of your Java workloads, higher total throughput and carrying capacity, faster warm-up, and infrastructure savings, achieved thanks to the C4 pauseless garbage collector, Falcon JIT compiler and other technologies created by Azul. Zing Builds are available in two versions, either for evaluation or production use:
As stream builds happen in a fixed schedule, all changes are included in the release notes. Twice a year (in February and August), a Stream build becomes the new Stable build, providing a new version with many more improvements. In this post, we want to give you an overview of all the combined improvements in the latest Stable release, 24.02.01.0.
As Stable builds overlap, your system should be on the 23.08 Stable line, and you have a window of four months to test and migrate to the 24.02 Stable line. Let’s look at some of the most significant changes between the Stream Build releases 23.08 and 24.02. Version 24.02, is the branching point for the new Stable Build line, includes all the following changes compared to the previous Stable Builds based on 23.08.
From now on, the JVM provided by Azul Platform Prime will be referenced as Azul Zing Builds of OpenJDK (Zing). This name was used before and was recently reintroduced to clarify the distinction between Platform Prime, a set of tools and services, and the Zing JDK.
This version includes the October 2023 and January 2024 CPU and PSU release security fixes, including CPU and PSU fixes for Azul Zing Builds of OpenJDK 21.
Since 23.10, Azul Zing contains the General Availability (GA) release of OpenJDK 21.
A new lightweight, fully functional distribution of the Java Runtime Environment (JRE) is now included for Java 8, 11, 17, and 21. The new Java JREs save a significant amount of space by removing various debugging options, developer options, and by eliminating various tools such as GC Log Analyzer. JRE builds are ideal in containerized environments, where local file size is limited and the size of the image downloaded contributes to the overall time to first transaction when starting a new JVM. The Zing JRE distributions still fully support Azul Optimizer Hub and Azul Intelligence Cloud (formerly known as Azul Vulnerability Detection).
JDK | JRE | |||
Distribution and artifact name (*) | Compressed archive (MB) | Unpackaged distribution (MB) | Compressed archive (MB) | Unpackaged distribution (MB) |
JDK 8.0.402
|
216 | 468 | 146 | 324 |
JDK 11.0.22
|
295 | 552 | 143 | 322 |
JDK 17.0.10
|
301 | 560 | 136 | 305 |
JDK 21.0.2
|
313 | 582 | 140 | 312 |
jdk
or jre
More concise logging of the Compilation Ranking feature has been implemented in 23.12 to better asses the behavior and impact of this feature. Newly collected data has been added to the pre-existing charts in GC Log Analyzer, Compiler Statistics > Compiler Queues and Compiler Statistic > Tier 2 Compiler Counts. Newly collected and viewable data includes the following:
Since 24.01, the garbage collector’s (GC) CPU usage is logged by default. Previously, you had to use the option -XX+:PrintGCDetails
. By default, you can view these metrics in GC Log Analyzer in the GC CPU Usage graph.
Zing 24.02.0.0 includes support for Optimizer Hub (formerly Cloud Native Compiler) on Arm64 system architecture.
This new Zing version improves integration with ReadyNow Orchestrator.
Prioritization of Profile Generations
ReadyNow Orchestrator allows you to set different minimum sizes and recording durations for different generations of your profiles. Often, you want to promote the first generation of your profile as quickly as possible so new JVMs are not starting with nothing. Still, you want your second generation to record for a longer time before promotion so it is more complete.
New configuration settings are available to achieve this: minProfileSize
, minProfileDuration
, minProfileSizePerGeneration
, and minProfileDurationPerGeneration
. Check ReadyNow Orchestrator Defaults for more info.
Fallback to Local Profiles
A new experimental feature is available on client side with the command line option “-XX:RNOProfileFallbackInput”. With this option, you can configure a local filesystem path, which gets used in case no profile data is available from ReadyNow Orchestrator, e.g., in case of a missing connection or the requested profile name doesn’t exist on the server.
GPGCSafepointWaitForMutatorResume
, has been introduced and is set to true
by default. This flag tells the Garbage Collector to pause and wait for mutator threads to be woken up before resuming, after every GC safepoint. If -XX:-GPGCSafepointWaitForMutatorResume
is set, the Garbage Collector resumes its work in parallel with mutator threads waking up.-XX:ProfileStartupLimitInSeconds
. Now, when you set this option to 0
, it means 0 seconds. Previously, if you set this flag to 0
, it would be interpreted as “infinite”. You can still specify “infinite” by using any negative number, for example -1
. The default behavior without setting this option remains the same, i.e. the default value has changed from 0
to -1
.In addition to many improvements and fixes, this new Stable Azul Zing Build of OpenJDK includes the new Long Term Support (LTS) version, OpenJDK 21. It makes it the best Java runtime for your production environment!
The post Changes Included in the Stable Release 24.02 of Azul Zing Builds of OpenJDK appeared first on Azul | Better Java Performance, Superior Java Support.
*** This is a Security Bloggers Network syndicated blog from Security Blog Posts - Azul authored by Frank Delporte. Read the original post at: https://www.azul.com/blog/changes-included-in-the-stable-release-24-02-of-azul-zing-builds-of-openjdk/