JDK14的新特性:JFR,JMC和JFR事件流

如题所述

Java Flight Recorder(JFR)是JVM的诊断和性能分析工具,收集JVM以及在其上运行的Java应用程序的数据。JFR性能影响极小,一般在使用默认配置时,性能影响小于1%。它通过事件驱动,具有高性能的后端,以二进制格式编写事件。JFR与Java Mission Control(JMC)协同工作,JMC是一个GUI工具,用于检查JFR创建的数据文件。JFR最早在BEA的JRockit JVM中出现,后被移植到Oracle JDK,如今在JDK14中,JFR引入了一个新特性——JFR事件流。

在使用JFR时,需要选择需要的事件类型以保证性能影响最小。JFR将从JVM中收集的事件写入缓存,然后刷新到全局缓存,并最终写入磁盘。若不写入磁盘,缓存中只会保存部分事件信息。JFR有多种启动方式,包括通过命令行参数或使用jcmd命令。JDK提供默认的两个profile文件:default.jfc和profile.jfc,其中default.jfc对JVM性能影响较小,适合普通应用,而profile.jfc包含更多细节,性能影响更大。用户也可以自定义创建自己的profile文件。

Java Mission Control(JMC)是用于Java应用程序管理、监视、概要分析和故障排除的工具套件。在JDK14中,JMC独立发行,用户可下载并安装。通过JMC界面,用户可以启动程序并开始JFR记录,然后通过JMC进行分析。JMC提供了丰富的功能,如概览、MBean浏览器、触发器、系统、内存、线程和诊断命令,帮助用户获得更详细的程序信息。

JFR事件流的引入简化了JFR的使用过程。通过监听事件变化,程序员可以在程序中实时处理事件,无需生成JFR文件。使用Configuration.getConfiguration("default")获取默认配置后,通过构建RecordingStream并使用onEvent方法处理相应的事件,实现事件流的监听。

本文综述了JFR、JMC以及JDK14中的JFR事件流特性,希望对读者的工作有所帮助。感兴趣的读者可以访问提供的GitHub链接获取更多示例和详细信息。本文作者是“程序那些事”,读者可通过关注公众号“程序那些事”获取更多相关文章。
温馨提示:内容为网友见解,仅供参考
无其他回答

JDK14的新特性:JFR,JMC和JFR事件流
JFR与Java Mission Control(JMC)协同工作,JMC是一个GUI工具,用于检查JFR创建的数据文件。JFR最早在BEA的JRockit JVM中出现,后被移植到Oracle JDK,如今在JDK14中,JFR引入了一个新特性——JFR事件流。在使用JFR时,需要选择需要的事件类型以保证性能影响最小。JFR将从JVM中收集的事件写入缓存,然后刷...

开源Java 性能分析器比较:VisualVM、JMC 和 async-profiler
VisualVM 提供直观的 GUI,适合快速访问性能概览。async-profiler 以其广泛的特性、可嵌入性和对多平台的支持而受到欢迎。JDK Flight Recorder 则以其稳定性、丰富事件支持和内置 GUI 而成为 OpenJDK 中的内置分析工具。

JDK8到JDK17有哪些吸引人的新特性?
JDK8至今的升级过程中,包含了众多新特性,如Java平台模块化系统(Jigsaw)、垃圾回收器的优化(如ZGC和G1的改进)、诊断和监控工具的增强(JFR和JMC)、以及更简洁的语法和API。这些新特性旨在提升性能,简化开发,并解决旧版本存在的问题。Java模块化(Jigsaw):JDK9引入的模块化系统,对Java生态系统产...

azulzulujdk和oraclejdk区别有哪些?
在比较AzulZulu JDK和Oracle JDK时,首先需要了解这两个版本在功能、性能和稳定性上的不同。AzulZulu JDK通常被视为开源版本,而Oracle JDK是由Oracle公司开发并维护。若聚焦于JDK8版本,我们发现AzulZulu JDK与Oracle JDK存在一些差异。AzulZulu JDK在功能上并未包含Oracle JDK的JMC(Java Mission Control...

阿里开源 Dragonwell JDK 重磅发布 GA 版本:生产环境可用
ElasticHeap是继JFR、JWarmUp之后,计划在下一个版本发布的第三个新特性。它基于G1 GC,提供了动态堆的弹性伸缩功能,有效节省Java进程的实际物理内存占用。OpenJDK8仅支持在Full GC时按照一定规则归还物理内存,而Dragonwell的ElasticHeap提供了更敏捷有效的内存归还方式。总结 8.0.0-GA的发布标志着...

腾讯牛逼!终于开源了自家的 JDK——Kona
这个特性用于采集 Java 应用程序的诊断信息,默认为关闭状态。启动的时候可以通过以下命令启用 JFR :应用程序运行时,使用以下命令采集 JFR 数据:使用以下命令停止 JFR 采集数据:JFR 数据处理可以使用 java mission control (jmc) 7.0以上版本打开*.jfr文件,更多可以参考 Oracle 的 JFR 官方文档。

相似回答
大家正在搜