66

Other than the more 'advanced' GUI from Java mission control, how are they different?

At first glance they seem to offer very similar functionality (Interpreting JMX data and Memory/CPU profiling).

However, as they are both shipped with the JDK (I'm using JDK 1.7.0_51 SE) I'm assuming there are significant differences, otherwise they would be combined into a single solution. Especially as this increases the size of the JDK significantly.

Is Java Mission Control ultimately going to replace JVisualVM in the future?

informatik01
  • 16,038
  • 10
  • 74
  • 104
GoldenJam
  • 1,459
  • 1
  • 11
  • 17
  • One tool was developed by Oracle, the other (initially) by Sun. They might converge it the future but maybe they remain individually as `JVisualVM` is part of `Netbeans` (well, it least they have overlapping parts). – Holger May 15 '14 at 11:12
  • http://hirt.se/blog/?p=364&cpage=1#comment-88 – cic Jun 16 '14 at 08:37

2 Answers2

16

One important point is that Mission Control is potentially not free to use on production environments. It is free for applications running in DEV & QA and Oracle are not currently enforcing the charges for production applications (as of Nov 2014). However, their executives have made it clear this may change in time.

kittylyst
  • 5,640
  • 2
  • 23
  • 36
  • 3
    This doesn't appear to be true. Mission Control is considered a Commercial Feature ([source, Table 1-1](http://www.oracle.com/technetwork/java/javase/terms/products/index.html))...however, Section B of the [License Agreement](http://www.oracle.com/technetwork/java/javase/terms/license/index.html) allows Commercial Features to be used for `the purpose of designing, developing, and testing your Programs`. Meaning you can use it for internal testing...you just can't distribute it with your own application. – Kevin K Sep 19 '14 at 18:08
  • 4
    Kevin - if you've downvoted this, please rescind this. I have directly asked Oracle execs this question and received the answer that: "Oracle do not currently intend to charge most users for using MC in production". That's pretty clear that "internal testing" of production apps is *not* covered by the license. Oracle could at any time start demanding fees from anyone using MC in production. It has nothing to do with distribution. – kittylyst Oct 06 '14 at 19:24
  • I don't think that's clear at all. Oracle may, of course, change their licensing terms in the future if they did want to chart for Mission Control (though it's unclear to me whether that could apply retroactively to older versions of Java). But under the current terms it is allowed, so it simply isn't true that MC is "not free to use on production applications". It would be more accurate to say that where JVisualVM is open-source, MC is not, and so Oracle reserves the right to charge for it in the future if they so choose. – Kevin K Oct 06 '14 at 20:30
  • Kevin - This isn't a matter of interpretation. I've had it confirmed in as many words by Oracle staff. If you choose to carry on with a different interpretation, that's your perogative. All I can tell you is that Oracle believe that the license they wrote gives them the right to charge you for prod use if they decide to. – kittylyst Oct 08 '14 at 15:28
  • The only real concern I have is that your answer as currently written makes it sound like anyone who wants to use MC in development must, without exception, purchase the rights to do so from Oracle. However, setting aside the licensing terms disagreement, I think we can both agree that Oracle is not currently enforcing any such requirement. I'd be more than happy to rescind my downvote if you can edit your answer to make this point clear. – Kevin K Oct 08 '14 at 21:19
  • Kevin - Edited. Hope that's clearer & you raise a fair point. – kittylyst Nov 11 '14 at 15:58
  • 3
    Note that JMC and JFR are being open sourced. By September next year they will hopefully both be in an OpenJDK near you. :) – Hirt Nov 14 '17 at 01:43
  • 7
    Here is the OpenJDK project page for *Mission Control*: http://openjdk.java.net/projects/jmc/. And [*JEP 328: Flight Recorder*](http://openjdk.java.net/jeps/328) for its donation from Oracle to OpenJDK as well. Perhaps related: [*JEP 137: Diagnostic-Command Framework*](http://openjdk.java.net/jeps/137) – Basil Bourque Jun 20 '18 at 06:35
14

The JMX Console part of Java Mission Control is just like any other JMX console. I'm of course biased, but in my opinion it's one of the more feature rich consoles available. The more unique part of JMC is the Java Flight Recorder part.

JMC is targeting production systems, and is very careful to avoid introducing unnecessary overhead. With the Java Flight Recorder you can do production time profiling and diagnostics with an almost unmeasurable overhead.

Hirt
  • 1,664
  • 10
  • 12