JDK Mission Control/Flight Recorder 8.1.0 release

The 4th August 2021 was an important date a new release of favorite profiling tool was released. It means JDK Mission Control has reached it general availability in the version 8.1.0.  To download the binnaries it’s possible to use on of the vendors, for example Adoptjdk/JMC 

Note: if you are an mac user don’t forget to unzip the file by using the following command: 

$ cat org.openjdk.jmc-8.1.0-macosx.cocoa.x86_64.tar.gz |tar xv - 

This article reviews which of the main features/enhancements are coming with the release 8.1.0

1. JMC Agen Plug-In

This is very neat and useful feature especially for already running processes on JVM. The new agent plug-in allows you to configure event in the descriptive way(XML). You can attach them into already running process. The events are emitted from the specified destination:

<event id="vehicle_factory.prepareParts">
			<label>Vehicle Factory Prepare Parts</label>
			<description>Vehicle Factory tries to prepare parts</description>
			<class>com.wengnerits.jfr.agent.demo.VehicleFactory</class>
			<path>demo/vehicle_factory</path>
			<stacktrace>true</stacktrace>
			<method>
				<name>prepareParts</name>
				<descriptor>(Ljava/lang/String;)V</descriptor>
				<parameters>
					<parameter index="0">
						<name>Preparing Parts</name>
						<description>factory tries to prepare parts</description>
					</parameter>
				</parameters>
			</method>
			<location>WRAP</location>
			<fields>
				<field>
					<name>Factory</name>
					<description>Factory prepare parts</description>
					<expression>this.name</expression>
				</field>
			</fields>
		</event> 

2. Contant Pools Page

Another useful enhancement that help to closer understand to the application behaviour, more specific where the memory or storage has been allocated. The page contain over about constants acquired  during the recording.

3. New Allocation Events in JDK 16

In JDK 16 has been introduced a new form of allocation profiling events. The JMC release 8.1.0 is coming with support for them

4. JFR parser performance improvement 

More and more events stored inside the recording  have to be analyzed.  it’s a logical consequence a bit higher pressure on the performance and effectivity of the parsers. Current release is coming with improvements

5. Core Bundle Serializer

In order to understand application behaviour it is required to have data in proper format to enforce a visualization possibilities. Current release provides a JSON and DOT(Graphviz) format. Bothe Serializer reside inside a new core bundle. 

6. JMC Application requires JDK 11+ to run!

still there is support for OpenJDK 8u272+ and OracleJDK 7u40+… 

8. Eclipse 2021-03 and latter support 
9. Many bug-fixes and improvements 

Have a lot Fun with Attaching Agents!

Happy JFRing !

References:
openjdk: JMC 8
foojay.io: JDK Mission Control 8.1.0 Released!
hirt.se: JDK Mission Control 8.1.0 Released

 

Main: Java tutorials