JFRによるプロファイリング
組み込みFlight Recorderで外部ツールなしに任意のJavaアプリをプロファイルする。
コード比較
✕ Java 8
// Install VisualVM / YourKit / JProfiler // Attach to running process // Configure sampling // Export and analyze // External tool required
✓ Java 9+
// Start with profiling enabled
$ java -XX:StartFlightRecording=
filename=rec.jfr MyApp
// Or attach to running app:
$ jcmd <pid> JFR.start
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
組み込み
外部プロファイラーのインストールやライセンスが不要です。
低オーバーヘッド
約1%のパフォーマンス影響——本番環境でも安全に使用できます。
豊富なイベント
CPU・メモリ・GC・スレッド・I/O・ロック・カスタムイベントを記録できます。
旧来のアプローチ
外部プロファイラー
モダンなアプローチ
Java Flight Recorder
JDKバージョン
9
難易度
中級
JDKサポート
JFRによるプロファイリング
利用可能
JDK 9/11(オープンソース化はJDK 11)以降、広く利用可能
仕組み
Java Flight Recorder(JFR)はJVM組み込みの低オーバーヘッドなプロファイリングツールです。CPU・メモリ・GC・I/O・スレッド・カスタムイベントを最小限のパフォーマンス影響(約1%)でキャプチャします。
関連ドキュメント