第 1 章 JDK Flight Recorder 简介
JDK Flight Recorder (JFR)是监控和性能分析 Java 应用程序的低开销框架。如需更多信息,请参阅 JEP 328: Flight Recorder。
您可以从源自 JVM 和应用程序代码的事件收集数据。然后,数据会在内存中写入。首先,到 thread-local 缓冲区,然后在清除到磁盘上的 JFR
文件(*.jfr)前提升到 fixed-size 全局环缓冲。其他应用程序可以使用这些文件进行分析。例如,JDK Mission Control
(JMC)工具。
1.1. JDK Flight Recorder (JFR)组件
您可以使用 JFR 功能观察 JVM 内运行的事件,然后从这些观察到的事件收集到的数据创建记录。
以下列表详细介绍了密钥 JFR 功能:
- 记录
- 您可以管理系统记录。每个记录都有唯一的配置。您可以启动或停止记录,或者根据需要将其保存到磁盘。
- 事件
您可以使用事件或自定义事件来跟踪 Java 应用的数据和元数据,然后在 JFR 文件中从任一事件类型保存数据和元数据。您可以使用各种工具,如 Java Mission Control (JMC)、
jcmd
等等,来查看和分析存储在 JFR 文件中的信息。Java 虚拟机(JVM)具有许多持续添加的预先存在的事件。用户可使用 API 将自定义事件注入其应用程序中。
您可以在记录时启用或禁用任何事件,以通过提供事件配置来最小化开销。这些配置采用
xml
文档的形式,并称为 JFR 配置集(..jfc
)。对于最常见的用例,红帽构建的 OpenJDK 附带以下两个配置集:-
默认
:默认配置集是一个低选项配置,可以安全地在生产环境中持续使用。通常,开销小于 1%。 -
配置集
: 配置集 是一个低选项配置,非常适合性能分析。通常,开销小于 2%。
-