目的
Javaのパフォーマンスチューニングを目的とし、以下ツールを利用して計測したデータを元にボトルネックとなる箇所の分析を行えるようにするため、実施した手順を残しておきます。
今回はeclipseから実施できることを主目的としています。
(eclipse以外での実行、プロファイリングレポートの分析等についてはまた余力を見て記事にできたら、と思います)
- JMC(JDK Mission Control)
- JFR(JDK Flight Recorder)
記載範囲
本記事ではeclipseで「Mission Control」の使ってみるため、プラグインとして導入してプロファイリングレポートを確認するところまでを記載します。
前提条件
- エディション:Windows10 Pro
- eclipseバージョン:Version: 2021-06 (4.20.0)
- JDK Mission Control Plug-ins for Eclipse:バージョン8.0.1
プロファイリングツール
JDK11より以前では、JDK Mission Control(以降JMC)は商用利用目的ではライセンスが必要でしたが、JDK11以降はJava Flight Recorder、Java Mission Controlがオープンソース化されています。
(JMCの方が使いやすく、情報量も多そうだったので今回はJMCを使ってみる事にしました)
その他にはVisualVM等、利用できるツールはあるようです。
eclipseプラグインにjmcを導入
- eclipse上で「ヘルプ」→「新規ソフトウェアのインストール」を開き、作業対象に以下URL(https://download.oracle.com/technology/products/missioncontrol/updatesites/openjdk/8.0.1/ide/)をコピペする。
- Mission Controlにチェックを入れ、「次へ」ボタンを押下する。
- ライセンスのレビュー画面にて、「使用条件の条項に同意します」を選択し、「完了」ボタンを押下する。
Mission Control画面を開く
eclipseからFlight Recorderを起動し、プロファイリングを開始
- Flight Recorderを右クリックし、「Start Flight Recording」を選択する。
- Time fixed Recordingの「Recording time:」に記録したい時間(例:60分なら、60 min)を指定して「完了」ボタンを押下する。
- パフォーマンスを計測したいJavaプログラムを実行します。
プロファイリングデータを確認
- eclipse上からMission Controlプロジェクト(開いているworkspace内に作成されている)を開く。
- 「.jfr」ファイルが作成されているので開く。
- eclipseのアウトラインから、「環境」→「プロセス」を開いてみる。
次回の予定
サンプルJavaを実行し、Flight Recorderで出力したレポート結果を分析できたら良いな、と思っています。