Return to site

JDK Mission Control 8 and Beyond with Marcus Hirt - Java Champion

· mashup,java

  1. Quick intro
  2. JDK mision control 8
  3. Roadmap

"Let's introduce the JMC!"

Introduction to JDK Mission Control

*Is a Java tools suite

  •   =>Focus is on production profiling and diagnostics
  •   =>Also contains other tools, such as a heap waste analysis tools

*Was once JRockit -> Java Mission Control (Commercial)

*Became JDK MIssion Control when Open Sourced by Oracle

"Let's present the current existing versions!"

JDK Mission control versions

*Open sourced version was 7.0.0

*Current source release is 7.0.1

*Upcoming release (any day now!) is 8.0.0

*Binary releases from multiple vendors, such as Adopt OpenJDK, Azul, Bell-Soft, Oracle and Red Hat (included Fedora)

"Let's detail what compose the JMC!"

JMC is many things

*An application

  •   =>e.g. for visualizing JFR recordings and/or controlling the flight recorder

*An application framework

  •   =>e.g. a good place to add applications that deals with JVMs

*A library

  •   =>e.g. for parsing and processing flight recordings of any version (including Oracle JDK 7+, and Open JDK 8+)  

"Let's discuss the features of JMC!"

JMC Feature: JMX Console

*Great for monitoring the JVM continuously

*Great for browsing MBeans / trying out MBean APIs

*Great for invoking Diagnostic Commands remotely (jmc commands)

JMC Feature: JOverflow

*Heap waste analysis

*Now included by default

*Ported to SWT in JMC 8

*Will demo as part of the JMC 8 demos

JMC Feature: JFR

*Control flight recordings

*Create and edit flight recorder templates (.jfc files)

*Visualize recordings

*Analyze recordings

JMC Feature: Core librairies

*Mostly used to parse JFR data

  •    =>Supports parsing recordings all the way from Oracle JDK 7 and up to the latest OpenJDK version
  •    =>Presents a java in-memory model
  •    =>Declarative API allowing filtering and aggregation

*Will finally be published on Maven Central for JMC 8

Using the Core librairies

JMC 8 - Flight Recorder

*Flight Recorder

  •   =>Improved Flame Graph
  •   =>Graph View (EA)
  •   =>Rules 2.0
  •   =>Core API updates->JDK8
  •   =>New Core Module: JFR Writer

 

 

JMC 8 - Agent

*BCI Agent for declaratively adding JFR events

*JMX API for controlling instrumentation

*Capture parameter val

*Capture fields

*Converter support

*Hardening

JMC 8 - Agent - Converters

JMC - JOverflow

*SWT Converter

*Hierarchical Tree Map

"Let's talk of what's coming next!"

Beyond JMC 8 - Short term

*Support for the new Allocation Event

*Intelligent Graph Pruning for the Graph Visualizer

*Support the Graph View on Windows

*Attribute Selector for the Flame Graph and Graph Views, potentially also the Stacktrace View

Beyond JMC 8 - Mid Term

*JMC Agent Integration into JMC

  •   =>Control the agent from JMC
  •   =>Define probes

*JMC Agent Support for Target Emission Rates (Subsampling)

*Hierarchical Tree Map for Aggregated Stacktraces

*Butterfly / Sandwich View

*Constant Pool Explorer

Beyond JMC 8 - Long Term

*Provide ready to use solutions for visualizing JFR data with popular visualization frameworks

*Server side triggers

"Finally, let's list some relevant resources!"

Get Started

*Tutorial:

(Feel free to fork and do pull requests for the Tutorial!! :))

*JShell for JMC-core (jmc-jshell):

Links

*GitHub Repo:

*Blog:

*Continuous Profiling Blog:

Contribute

*Github!!! 11!!:

*Skara blog:

*Mailinglist: