Visit Support

ZVision to JFR Migration FAQ

ZVision is quickly approaching its End-of-Life with the upcoming release of Azul Platform Prime 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

No, ZVision will be removed from the codebase, meaning that ZVision will not be usable with Azul Platform Prime

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 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:

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 On Prime Java 11 and 17, Memory Allocation Profiling is available using settings=profile since and on Prime Java 21 since (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].