JDK Mission Control 9.0.0 Released, Requires JDK 17 Support

2024-05-14 10:41:35

Over the past three years, Datadog’s Engineering Director Marcus Hirt has announced the release of JDK Mission Control (JMC) 9.0.0. This new version is built on JDK 17, bringing fixes to previous errors and brand-new features, including support for Eclipse 4.30. Java Flight Recorder (JFR) is a performance analysis and event collection framework embedded within

Over the past three years, Datadog’s Engineering Director Marcus Hirt has announced the release of JDK Mission Control (JMC) 9.0.0. This new version is built on JDK 17, bringing fixes to previous errors and brand-new features, including support for Eclipse 4.30.

Java Flight Recorder (JFR) is a performance analysis and event collection framework embedded within the JDK. JDK Mission Control (JMC) provides a JMX console and a heap analysis tool, allowing users to perform more in-depth visualization and automated analysis of Java flight recorder data. The latest JMC version now requires running on JDK 17 or later and has integrated 118 bug fixes as well as new features, allowing users to parse JFR records from OpenJDK 8u272+ and Oracle JDK 7u40+.

The refresh interval for JVMs can now be personalized, and users can configure it through “Preferences | JDK Mission Control | JVM Browser | Local.” By default, JMC checks for new JVM instances every 5 seconds. The JFR analysis part has improved performance by reducing memory allocation.

Some Eclipse-independent classes have been moved to the org.openjdk.jmc.common package, aimed at making it easier for applications that use jmc-core to call these classes. In addition, the new version has introduced a dark theme, which users can enable through “Preferences, General | Appearance.” Moreover, the event browser’s search feature now supports searching by event type ID.

In previous versions, flame graph visualization was implemented through the browser component built into the Eclipse platform, but the new version has changed to a Swing-based solution, thus enhancing performance. JMC also now supports starting flight recordings on native images of GraalVM, and the new version has added support for Linux systems running on the aarch64 architecture (including select Raspberry Pi devices).

Developers can obtain the source code and build instructions from GitHub, and building this project requires JDK 17. Developers can add JDK 17 to the Maven toolchain by configuring the ~/.m2/toolchains.xml file. Moreover, a build.sh script is available for building the project on Linux or macOS, including options for running tests, packaging core modules, running examples, and more.

The build of the project can begin by executing the command ./build.sh --packageJmc.

After the application has been built, it can be launched by running the command ./build.sh run. A more detailed operation guide can be found on GitHub as well as the JMC FAQ. JMC has been specifically optimized to run in Eclipse IDE 2023-12 or later versions.

Developers can install JMC through Eclipse’s update site Help | Install New Software, but it is important to note that the URL for the update site is specific to different vendors. Builds of JDK Mission Control are available from multiple vendors, such as Oracle’s JDK Mission Control, Bellsoft’s Liberica Mission Control, Adoptium’s Eclipse Mission Control, and Azul’s Zulu Mission Control.

At the time of writing this article, the aforementioned vendors have not yet released builds of JMC 9.0.0. However, blogs online have listed the complete changelog for this new version. Users who want to learn how to use the new version in detail can visit GitHub for related information.

Additionally, Hirt has provided tutorial resources for JDK Mission Control, as well as the jmc-jshell tool. Although these resources are not for the latest version, they can still help users simplify the use of JFR and JMC.