Java 11 Features – Java Flight Recorder
In this article we will see how we can leverage Java Flight Recorder feature as part of Java 11. Earlier it was one of the commercial feature. But with Java 11 with JEP 328 this is open sourced. The Java Flight Recorder records the OS and JVM events to a file which 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 see 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 in available with Java 11, this excites the developer community. We can reduce the dependency on 3rd party profilers as well.
As part of Java 11 we are getting 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 Java11 early access from http://jdk.java.net/11/ to explore the features.
Published on Java Code Geeks with permission by Siva Janapati, partner at our JCG program. See the original article here: Java 11 Features – Java Flight Recorder Opinions expressed by Java Code Geeks contributors are their own. |
java -XX:StartFlightRecording=settings=default -XX:FlightRecorderOptions=dumponexit=true,dumponexitpath=C:\tmp
The above will not work in JDK 11. I would recommend that you type this instead:
java -XX:StartFlightRecording:dumponexit=true,filename=C:\tmp