There have been plenty of talks on JavaOne 2013 about the release of Mission Control and Flight Recorder with Java 7 update 40. The release was anticipated for a long time (since 2010 actually) and now was finally done. But why do people get so excited about it?
Well, Flight Recorder and Mission Control were tools produced by BEA (then Oracle) for the JRockit JVM. For a long time they have been an important differentiator for JRockit, because they were adding monitoring and profiling capabilities to the JVM which were unmatched by Sun or IBM.
After Oracle aquired Sun it was announced that the product lines will merge eventually. Now the convergence between JRockit and HotSpot finally came to a point where these two tools are available in the HotSpot JVM as well.
Before discussing my point of view on that further, please head over to my article on Mission Control and Flight Recorder on InfoQ and come back when you have read it 🙂
So, you are back? Good, now that you know what these tools are about, I can continue with my personal opinion about them.
First off, you might have noticed that they are not only “tools”, but actually are integrated deep into the JVM. Without the event generating code they could not display anything VisualVM could not display. And while there is an API to add additional events, there is no API to actually read the data.
This is a closed system! When Sun was in charge, they added the JVMTI and JavaAgent interfaces for monitoring and profiling which were open interfaces. They could be used by third party vendors to build powerful tools on top.
As codecentric we have always recommended the best monitoring and profiling tools available to our customers. All of the tools were either using JVMTI, like JProfiler does, or JavaAgent, like the APM Solution AppDynamics . There has been a lot of competition on the tooling market, but it was based on fair ground. All vendors did have the same basis to build on. But now the situation has changed. From now on, there is a JVM internal interface and a Oracle proprietary tool, which claim to offer “very low overhead always on profiling and monitoring” nobody else will be able to provide. If the claim holds true, and I am currently evaluating that, this is a big setback for the third party tools which do not have access to the new functionality, which for example contains the ability to do sampling which does not involve thread cooperation via safepoints.
There is little hope, that Oracle will make the technology available to third parties, which means that the best tools might in future only come from Oracle. That would be sad, because the openness of the Java ecosystem is considered to be the main advantage over .Net.
But for the situation right now, it seems that licensing will be a relevant topic. Even with a seemingly superior technology, the production license of Flight Recorder comes at 5,000 or 15,000 USD. And that is per processor. JProfiler costs about 500 USD per installation which allows profiling any system (but usually not suitable for production) and AppDynamics is at about 3,000 per production JVM (not processor). So even when the profiling capabilities no longer match what Oracle is now able to deliver, the price will make a difference.