JMC 9 的新功能 - Sip of Java
Billy Korando 于 2024 年 4 月 21 日
JDK Mission Control (JMC) 9 的二进制文件现已提供,您可以从 这里 下载。在本文中,让我们看一下 JMC 9 中的一些关键变化。
JMC 需要 JDK 17
JMC 9 中最重大的变化是 JMC 现在需要 JDK 17 或更高版本才能运行。
但是,虽然 JMC 需要 JDK 17 才能运行,但它仍然可以读取 JDK 7u40 或更高版本中的 JFR 记录,例如,读取来自简单 JDK 7 应用程序的 JFR 记录。
JMC 更新为使用 Eclipse 4.30
JMC 已更新为使用 Eclipse 4.30,它是 Eclipse 2023-12 项目的一部分。有关 Eclipse 4.30 中包含的更改的更多信息,请查看此链接:https://eclipse.dev/eclipse/news/4.30/
支持深色模式
JMC 现在支持深色模式,可以通过转到设置 > 常规 > 外观并选择“深色”主题来启用。
可配置的 JVM 浏览器
JVM 浏览器已更新,现在可以配置其检查新 JVM 的频率。要配置 JVM 浏览器,请转到设置 > JDK Mission Control > JVM 浏览器 > 本地。默认值为 5000 毫秒,与之前硬编码的值匹配。
事件检查点限制增加
事件检查点限制已更新,可以超过 u4 限制。这遵循 JDK 20 中引入的更改。有关此更改的更多信息,请阅读此 JBS 问题:https://bugs.openjdk.org/browse/JDK-8298129
按事件类型 ID 搜索事件
事件浏览器已更新,允许按事件类型 ID 搜索事件。此外,事件类型 ID 现在可以显示为一列;默认情况下,它设置为隐藏。
将 JMC 与本机映像一起使用
对于 GraalVM 用户,在 JMC 的先前版本中,即使本机映像支持 JFR,也无法在本机映像上启用 JFR。此问题已在 JFR 9 中解决。
火焰图更新
火焰图现在将使用 Java Swing 渲染。以前,此图表使用嵌入式浏览器。迁移到使用 Java Swing 带来了图形更新以及对性能和模型创建的改进。
规则引擎更新
JMC 具有一个规则引擎,该引擎会自动分析 JFR 记录,检查潜在的性能瓶颈和其他问题。JMC 9 中的规则引擎已更新,包含了一些新规则。
G1 暂停时间规则
G1 MMU 规则检查 G1 暂停时间是否超过目标。
终结统计信息
在 JDK 18 中,终结已 弃用以供删除。此更改为 JFR 添加了一种新的事件类型,jdk.FinalizationStatistics
。新规则“终结器运行”将读取此事件类型以检查应用程序是否在对象上调用 finalize
。
反向并行
新的“反向并行”规则检查并行 GC 执行的效率(并行 GC 利用多个线程来处理 GC 工作)。有关此规则的更多信息,请查看此 JBS 问题:https://bugs.openjdk.org/browse/JMC-8144
结论
这只是对 JMC 9 中一些最重大变化的高级概述。总共,近 200 个 JBS 问题已在 JMC 9 中关闭。您可以在此处查看所有票证。此外,请查看 Marcus Hirt 关于 JMC 9 的文章以及其他文章,因为他涵盖了许多关于 JMC、执行监控等的主题。Marcus Hirt 是现在 JDK Mission Control 的最初工程师之一。
其他阅读材料
下载 JMC 9 - https://www.oracle.com/java/technologies/javase/products-jmc9-downloads.html
Eclipse 4.30 - 新功能和值得注意的更改:https://eclipse.dev/eclipse/news/4.30/
添加规则以检测 GC 反向并行 - https://bugs.openjdk.org/browse/JMC-8144
JDK Mission Control 9.0.0 发布!- Marcus Hirt - http://hirt.se/blog/?p=1477
JMC 9 中解决的 JBS 问题:https://bugs.openjdk.org/
JEP 421:弃用终结以供删除 - https://openjdk.org/jeps/421
让检查点事件大小超过 u4 限制 - https://bugs.openjdk.org/browse/JDK-8298129
祝您编码愉快!