自从我们上次听说这个叫做任务控制的小东西已经有一段时间了。 它从JRockit一直到现在都被重命名为Java Mission Control。 这是从HotSpot和JRockit融合战略中幸存下来的部分之一。 使用今天的Java SE 7 Update 40,您实际上可以再次使用它。
Java Mission Control 5.2
以前的JRockit任务控制(JRMC)现在称为Java任务控制(JMC),它是一个工具套件,其中包括用于监视,管理,分析和消除Java应用程序中的内存泄漏的工具,而不会引入通常与以下工具相关的性能开销:这个类型。 直到今天,Oracle HotSpot下载中都提供了5.1版本,只有从Oracle支持网站上的付费客户才能获得该版本。 今天的版本是与Hotspot JDK捆绑在一起的Java Mission Control的第一个版本! JRockit和Hotspot之间的融合项目已达到临界规模。 在Hotspot JDK的7u40版本中,Hotspot提供了相当数量的Flight Recorder信息。 终于有了道理。 除了数百个小的修复和改进之外,JMC Client现在已构建为可以在Eclipse 3.8.2 / 4.2.2上运行,并且还具有带有服务器端子注释的新JVM浏览器。 这使跟踪正在运行的记录和JVM变得容易得多。
Java飞行记录器(JFR)
但是主要和最重要的功能是飞行记录器。 飞行记录功能可处理事件。 这些事件需要由基础JVM产生。 现在,热点已与JRockit达成事件融合。 这意味着从JRockit提供的最有用的信息现在也可以从Hotspot获得。 而且因为这些是完全不同的JVM; 在某些情况下,信息会有所不同。 您的应用程序的总体分析开销仍然保持在不到2%的水平。 通常少得多。 考虑到您获得的信息,这几乎是零。
带GlassFish 4的JFR
让您的手变脏,然后尝试使用最新的GlassFish。 首先更改您的glassfish4 \ glassfish \ config \ asenv.conf / .bat并添加AS_JAVA = PATH / TO / JDK7u40,现在启动域并导航到JVM选项。 或者,作为替代方法,打开glassfish4 \ glassfish \ domains \ domain1 \ config \ domain.xml并搜索相关的java-config标记并添加以下两个jvm-options:
<jvm-options>-XX:+UnlockCommercialFeatures</jvm-options><jvm-options>-XX:+FlightRecorder</jvm-options>
现在,重新启动域并查找jdk1.7.0_40 \ bin \ jmc并将其启动。 如果您在同一台计算机上运行,则应该已经在JVM浏览器中看到了可用JVM的列表。 如果展开GlassFish节点并双击“ MBean Server”节点,您将获得有关当前情况的良好概览:
从那里,您可以通过右键单击JVM浏览器中的“飞行记录器”节点来开始飞行记录。 选择所需的记录时间和事件设置(现在,btw具有新的模板功能可以预选择事件并单击“完成”。在所需的时间范围之后,将记录下载到JMC,您可以浏览时间线并查找瓶颈。
一个非常小的缺点是,您无法使用GlassFish 3运行它。对于jvm-options的排序,4.0版中已修复一个已知的错误 。
什么是热的?
自切片品种以来最好的事情是,您现在有了方法分析事件! 通过方法分析事件,您可以找出应用程序在哪里花费最多的时间来执行Java代码。 例如,这对于优化实际上会产生影响的应用程序很有用。
进一步,您将获得一个改进的分配配置选项卡。您现在可以查看每个TLAB分配的跟踪信息,并且可以直接在旧空间中分配对象。 在飞行记录器的所有选项卡中,都将继续使用“新的和改进的”主题。 您将获得文件I / O,套接字I / O以及许多其他的东西,它们提供了很多见解。
实验性插件
而对我来说最好的部分是,团队继续使用大量实验性插件。 添加了一个新的名为JOverflow的–用于内存浪费的堆转储分析。 该插件允许Mission Control进行堆转储分析,主要是寻找浪费的堆空间。 JOverflow将寻找几种不同的反模式,例如重复的字符串,未充分利用的集合等。此插件还添加了一个操作(用于本地连接),该操作将执行堆转储,然后使用JOverflow可视化堆转储。 这可能是您可以从JRMC中得知的Memleak分析仪的短期替代品。 D-Trace插件也进行了大修。 您可以在Marcus Hirt的博客中找到有关它的更多信息。
下载和进一步阅读
您可以从Oracle技术网Java SE下载页面 grep下载最新的7u40。 Java Mission Control已经集成,您可以运行它了。
如果需要更多信息,请访问oracle.com/missioncontrol ,在其中可以找到指向文档和Eclipse更新站点的链接。
翻译自: https://www.javacodegeeks.com/2013/09/java-mission-control-5-2-is-finally-here-welcome-7u40.html