Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Java 11 Features: Java Flight Recorder

DZone's Guide to

Java 11 Features: Java Flight Recorder

Want to learn more about one of the new features for Java 11? Check out this post on using the Java Flight Recorder to record OS and JVM events.

· Java Zone ·
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

In this article, we take a look at how to leverage the Java Flight Recorder (JFR) feature as part of Java 11. Earlier, it was one of the commercial features. But, with Java 11 and JEP 328, this is open source and the Java Flight Recorder records the OS and JVM events to a file that can be inspected using Java Mission Control (JMC). Enabling JFR puts minimal overhead on the JVM performance. Hence, this can be enabled for production deployments too. Now, we will look at some of the JVM arguments to enable JFR.

Time-Based

java -XX:StartFlightRecording=delay=20s,duration=60s,filename=C:\myRecording.jfr,settings=profile,name=SampleRecording


Continuous With Dump on Demand

java -XX:StartFlightRecording=settings=default


Continuous With Dump on Exit

java -XX:StartFlightRecording=settings=default -XX:FlightRecorderOptions=dumponexit=true,dumponexitpath=C:\tmp


 As the JFR is built and made available with Java 11, this excites the developer community. We can reduce the dependency on 3rd party profilers.

As part of Java 11, we are getting the  jdk.jfr module. This API allows programmers to produce custom JFR events and consume the JFR events stored in a file to troubleshoot the issue.

You can download the Java 11 early access here to explore additional features.

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat

Topics:
java ,java 11 ,jdk 11 ,flight recorder ,jmc ,dump file

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}