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 內部的,並不須要額外的依賴,開箱即用。設計