Flight Recorder源自飞机的黑盒子java
Flight Recorder之前是商业版的特性,在java11当中开源出来,它能够导出事件到文件中,以后能够用Java Mission Control来分析。能够在应用启动时配置java -XX:StartFlightRecording,或者在应用启动以后,使用jcmd来录制,好比架构
Pid是进程id框架
$ jcmd <pid> JFR.start $ jcmd <pid> JFR.dump filename=recording.jfr $ jcmd <pid> JFR.stop
Jdk12的jfr工具能够打开生成的ifr文件进行分析分布式
Cpu使用率工具
Gc信息性能
是 Oracle 刚刚开源的强大特性。咱们知道在生产系统进行不一样角度的 Profiling,有各类工具、框架,可是能力范围、可靠性、开销等,大都差强人意,要么能力不全面,要么开销太大,甚至不可靠可能致使 Java 应用进程宕机。测试
而 JFR 是一套集成进入 JDK、JVM 内部的事件机制框架,经过良好架构和设计的框架,硬件层面的极致优化,生产环境的普遍验证,它能够作到极致的可靠和低开销。在 SPECjbb2015 等基准测试中,JFR 的性能开销最大不超过 1%,因此,工程师能够基本没有心理负担地在大规模分布式的生产系统使用,这意味着,咱们既能够随时主动开启 JFR 进行特定诊断,也可让系统长期运行 JFR,用以在复杂环境中进行“After-the-fact”分析。还须要苦恼重现随机问题吗?JFR 让问题简化了不少。优化
在保证低开销的基础上,JFR 提供的能力也使人眼前一亮,例如:咱们无需 BCI 就能够进行 Object Allocation Profiling,终于不用担忧 BTrace 之类把进程搞挂了。对锁竞争、阻塞、延迟,JVM GC、SafePoint 等领域,进行很是细粒度分析。甚至深刻 JIT Compiler 内部,全面把握热点方法、内联、逆优化等等。JFR 提供了标准的 Java、C++ 等扩展 API,能够与各类层面的应用进行定制、集成,为复杂的企业应用栈或者复杂的分布式应用,提供 All-in-One 解决方案。而这一切都是内建在 JDK 和 JVM 内部的,并不须要额外的依赖,开箱即用。设计