当前教程
JDK Flight Recorder 简介
系列中的下一个

系列中的下一个: JDK Flight Recorder 入门

JDK Flight Recorder 简介

JDK Flight Recorder(JFR)是内置于 HotSpot JVM 的可观察性和监控框架,可用于调试和分析应用程序。JFR 允许用户调试和分析其应用程序,帮助查找间歇性或难以发现的错误、性能改进等。本系列将引导您了解 JDK Flight Recorder 的关键功能、API 和概念。

JDK Flight Recorder 的关键功能

就像棋盘游戏 围棋 一样,JFR 相对容易上手,只需使用单个 JVM 参数 -XX:StartFlightRecording 即可启用,但就像围棋一样,也很难精通。本节将帮助 JFR 的新用户(甚至经验丰富的用户)熟悉一些关键功能和术语,以帮助为本系列的其余部分提供背景。

内置于 HotSpot JVM

如引言中所述,JFR 直接内置于 HotSpot JVM。所有在 HotSpot JVM 或 HotSpot 派生 JVM 上运行的应用程序都将能够访问 JFR,无需任何配置步骤或需要下载单独的二进制文件或库。这极大地降低了使用 JFR 的门槛,因为无需进行广泛的安全审查或产品评估。

在生产环境中免费使用

对于运行 JDK 11 或更高版本的用户,JFR 可在生产环境中使用,无需商业许可证。此更改是 JFR 开源并贡献给社区的一部分,如 JEP 328 中所述。随着此更改,JFR 也从 Java Flight Recorder 重命名为 JDK Flight Recorder。因此,虽然使用“Java Flight Recorder”将是一个过时的引用,但它指的是相同的技术。

低开销和始终在线功能

JFR 的名称来自 飞机飞行记录仪。与飞机飞行记录仪一样,JFR 在默认设置下具有低开销(约 1%),在配置文件设置下应保持在 2% 以下。允许它在生产环境中使用,而无需担心会对应用程序性能产生负面影响。JFR 还能够始终在线。JFR 会将捕获的内容写入临时文件,或仅将它们存储在内存中,并且当可配置的数据保留限制达到时,会覆盖最旧的内容。

基于事件的可观察性和监控框架

JFR 收集的数据称为事件。事件是自描述的数据元素,它们从 JVM 中代码的执行以及在 JVM 上运行的应用程序中传播。用户能够配置 JFR 如何收集事件,甚至定义自己的事件以收集有关其应用程序的更多数据。


上次更新: 2021 年 9 月 14 日


当前教程
JDK Flight Recorder 简介
系列中的下一个

系列中的下一个: JDK Flight Recorder 入门