LoginSignup
5
5

More than 5 years have passed since last update.

OpenJDK 11のFlight Recorder

Posted at

概要

Java 11が2018年9月26日にリリースされました。
このバージョンからOpenJDKでもFlight Recorderが使えるようになったので使い方を見てみます。

使用方法

事前準備

Flight Recorderで記録したファイルを見るにはmission controlが必要でJDKとは別にインストールしておく必要があります。以下のサイトにインストーラがあります。
https://jdk.java.net/jmc/
(2018/10/18時点ではearly accessです)

mission controlのサンプル画面
スクリーンショット 2018-10-18 12.15.51.png

プロファイリング記録

プロファイリング記録とはXX秒後からYY秒間記録するといった使い方です。
以下のオプションをjavaコマンド実行時に指定します。

-XX:StartFlightRecording=delay=20s,duration=60s,filename=myRecording.jfr,settings=profile,name=SampleRecording
  • delayはjavaコマンド実行してから何秒後に記録を開始するか指定します
  • durationは記録を何秒間するかの指定です
  • filenameで記録を保存するファイルを指定します(このファイルをmission controlで読むことでプロファイルが見れます)

連続記録

連続して記録を行い必要に応じて最新のX分のプロファイルとか全期間のプロファイルとかをファイルに保存できます。
以下のオプションをjavaコマンド実行時に指定します。

-XX:+FlightRecorder -XX:StartFlightRecording=maxage=5m,settings=default,disk=true
  • maxageは最大の保持期間です

実行中のアプリケーションを記録

既に実行しているアプリケーションに対してflight recorderを適用したいケースもあると思います。
その場合はmission controlの画面からフライト記録の開始を選択することで記録を始めることができます。
プロファイリング記録連続記録のどちらも選択することができます。

スクリーンショット 2018-10-18 12.19.26.png

mission control

ディスクに保存したjfrファイルを読み込むと以下のようなプロファイル画面が表示されます。
スクリーンショット 2018-10-18 12.26.10.png

Threadsの画面はスレッドダンプで取れる情報と同等の情報が見れます。
スクリーンショット 2018-10-18 12.32.08.png

メモリーの画面はヒープダンプで取れる情報と同等の情報が見れます。
スクリーンショット 2018-10-18 12.33.48.png

メソッドプロファイリングではどのメソッドが多く呼ばれているかなどを確認できます。性能分析に有用ですね。
スクリーンショット 2018-10-18 12.36.24.png

ガベージコレクションではGCログと同等の情報が見れます。
スクリーンショット 2018-10-18 12.37.43.png

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5