ZVision to JFR Migration FAQ
- Will I still be able to use ZVision after 24.02.0.0?
- Why is ZVision being discontinued?
- How do I install JFR?
- How do I remove ZVision?
- Will I see any performance impacts when using JFR?
- How do I make a JFR Recording?
- How do I view JFR recordings?
- Does JFR have CPU Profiling (Method Profiling)?
- Does JFR have Memory Allocation Profiling?
- How do I make a JFR recording without Command Line / Terminal access to the machine?
Note
|
ZVision is quickly approaching its End-of-Life with the upcoming release of Azul Platform Prime 24.02.0.0. But don’t worry, this is nothing to be afraid of! Azul is hard at work to ensure that any functionality provided by ZVision is available using other system tools. |
Azul recommends all users switch to Java Flight Recorder (JFR) and Zing Mission Control (ZMC). This page addresses the most common questions we have received concerning this change.
Will I still be able to use ZVision after 24.02.0.0?
No, ZVision will be removed from the codebase, meaning that ZVision will not be usable with Azul Platform Prime 24.02.0.0
Why is ZVision being discontinued?
A security vulnerability has been identified with jQuery 1.4.3, which is used in building the ZVision and ZVRobot utilities. At this time, Azul is not aware of any vulnerability in ZVision itself. But, as a precautionary measure, we have decided to discontinue support for ZVision and eventually remove it from our codebase altogether.
How do I install JFR?
Java Flight Recorder is readily available in Azul Zing Builds of OpenJDK (Zing) without the need for command-line options to enable it.
How do I remove ZVision?
When updating to Azul Platform Prime 24.02.0.0 or later, ZVision will be removed from your system automatically.
If you do not update Azul Platform Prime and wish to remove ZVision manually, the ZVision binary file should be removed from JAVA_HOME/bin/zvision
and its assets removed from `JAVA_HOME/etc/art`a.
If you are using the command line options -XX:ARTAPort
and/or -XX:+UseTickProfiler
, remove them from your options. -XX:ARTAPort
is ZVision-specific and -XX:+UseTickProfiler
is automatically enabled during a JFR recording.
Will I see any performance impacts when using JFR?
According to our extensive measurements, Prime’s JFR overhead is exactly the same as vanilla OpenJDK’s. We saw up to 5% overhead with the default JFR configuration. However, the default JFR configuration collects much more information than is usually needed. With some configuration (reducing the amount of collected events), JFR overhead can be dramatically reduced depending on your requirements.
How do I make a JFR Recording?
There are 3 ways to make a JFR recording:
-
Using jcmd in the command line: This looks like
jcmd JVMID JFR.start filename=rec.jfr
. See Recording a Running Application for more info. -
Using Azul Mission Control. See Recording with Azul Mission Control for more info.
-
Using the JVM flag
-XX:StartFlightRecording
. See Configuring JFR File Recording at Startup of the Application for more info.
All of these methods are outlined in the Azul Platform Prime, Java Flight Recorder documentation.
How do I view JFR recordings?
Azul provides Azul Mission Control for viewing JFR recordings. Refer to the Azul Mission Control documentation if you are unfamiliar with this tool.
Does JFR have CPU Profiling (Method Profiling)?
Yes. CPU Profiling is enabled using either settings=default
or settings=profile
. These settings are defined when making a JFR recording (via jcmd or Azul Mission Control’s Flight Recorder).
Does JFR have Memory Allocation Profiling?
On Prime Java 8, Memory Allocation Profiling is available using settings=profile
since 23.02.0.0. On Prime Java 11 and 17, Memory Allocation Profiling is available using settings=profile
since 23.06.0.0 and on Prime Java 21 since 23.10.0.0 (21-GA). In older Prime Java 11 and 17 versions, you have to enable the following configuration details and create a custom settings .jfc
file first:
-
In Azul Mission Control → Window → Flight Recording Template Manager → Import Files load the
/opt/zing/zing-jdk/lib/jfr/default.jfc
file. -
Change setting for Garbage Collector to: All, incl. Heap Statistics.
-
Export File to
memalloc.jfc
. -
Copy the file to a location where it is accessible by the Java process under analysis. Start the recording with the custom settings:
jcmd JVMID JFR.start duration=60s filename=/DIR/myrecording.jfr settings=/DIR/memalloc.jfc
.
How do I make a JFR recording without Command Line / Terminal access to the machine?
Azul Mission Control provides a Flight Recorder which does not require command line / terminal access. See our documentation for Recording with Azul Mission Control.
Haven’t found what you’re looking for? Reach out to us and contact Azul Technical Support at [email protected].