JVisualVM和Java Mission Control有什么区别?

67

除了Java任务控制的更“高级”GUI,它们有什么不同?

乍一看,它们似乎提供非常相似的功能(解释JMX数据和内存/CPU分析)。

然而,由于它们都与JDK一起发布(我正在使用JDK 1.7.0_51 SE),我认为它们具有重大区别,否则它们将被合并成单个解决方案。特别是这会显著增加JDK的大小。

Java任务控制最终会取代JVisualVM吗?


一个工具是由Oracle开发的,另一个(最初)是由Sun开发的。它们可能在未来合并,但也可能保持独立,因为JVisualVMNetbeans的一部分(至少它们有重叠的部分)。 - Holger
2个回答

16

一个重要的点是Mission Control在生产环境中可能不是免费使用的。它是为在DEV&QA中运行的应用程序免费的,目前(截至2014年11月),Oracle没有强制收取生产应用程序的费用。然而,他们的高管已经明确表示这可能随时改变。


3
这似乎不是真的。Mission Control被认为是商业功能(来源,表1-1)......但是,许可协议的B部分允许商业功能用于“设计、开发和测试您的程序”的目的。这意味着您可以将其用于内部测试......只是不能将其与您自己的应用程序一起分发。 - Kevin K
4
Kevin,如果您已经投票反对,请撤回。我直接向Oracle高管提出了这个问题,并收到了答案:“Oracle目前不打算向大多数使用MC进行生产的用户收费。”这很明显说明“生产应用程序的内部测试”不包含在许可证范围内。 Oracle随时可能要求任何使用MC进行生产的人支付费用。这与分发无关。 - kittylyst
Kevin - 这不是解释的问题。Oracle工作人员用明确的措辞确认了这一点。如果你选择坚持不同的解释,那是你的权利。我只能告诉你的是,Oracle相信他们撰写的许可证准许他们在决定时对您进行产品使用费。 - kittylyst
3
请注意,JMC和JFR正在进行开源化。到明年9月,它们有望被纳入您附近的OpenJDK中。 :) - Hirt
7
这是*任务控制(Mission Control)*的OpenJDK项目页面:http://openjdk.java.net/projects/jmc/。同时还有[*JEP 328: Flight Recorder*](http://openjdk.java.net/jeps/328),它被Oracle捐赠给了OpenJDK。或许与此相关的还有[*JEP 137: Diagnostic-Command Framework*](http://openjdk.java.net/jeps/137)。 - Basil Bourque
显示剩余3条评论

14

Java Mission Control中的JMX控制台就像任何其他JMX控制台一样。虽然我有偏见,但我认为它是可用的功能最丰富的控制台之一。 JMC更独特的部分是Java Flight Recorder。

JMC针对生产系统,并非常小心地避免引入不必要的开销。使用Java Flight Recorder,您可以在几乎不可测量的开销下进行生产时间分析和诊断。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接