BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JFRがOpen JDK 8で使用可能に

JFRがOpen JDK 8で使用可能に

原文(投稿日:2020/02/14)へのリンク

Java Flight Recorderは現在、OpenJDK 8ツリーへのマージ作業中である。これは昨年11月にInfoQがレポートした、アーリーアクセスリリースの完了を受けたものだ。これによってOpenJDK 8では、 — コンパイル時にフラグ--enable-jfrを指定してビルドすることにより — 軽量なイベント記録機能としてJava Flight Recorderを使用して、Java Mission Controlによる事後解析を行うことが可能になる。JFRを既定値として有効化して、逆にこの機能が無効なOpenJDK 8のビルドに--disable-jfrを指定する、という提案も行われている。 

Oracle Java 8ビルドはJFRが有効な状態で提供されているが、これは商用ライセンス下でのみ使用可能なものだ。最新のJava 8ビルドはOracleからは無償では提供されていないため、開発者はAdoptOpenJDKか、あるいはその他のRedHatやAzulのZingといったチャネルで提供されるOpenJDK 8ビルドを使うように移行する必要がある。しかしながら、Adopt OpenJDKサイトで提供されているビルドは、アップストリームソースから直接ビルドされたものであるため、JFRは含まれない。今回の変更がマージされれば、そのブランチからのすべてのビルドでJFRが使用できるようになる。AzulのZulu-8ビルドでは、JFRのアーリーアクセスサポートが使用可能である。

Flight Recorderの記録はJava Mission Controlを使用するか、あるいはEclipseプラグインとして先日リリースされたJMC-7.1をインストールすることで、オープンと解析が可能になる。JMC 7.1のビルドは、Java 8とJava 11リリースの両方を処理可能なものがAzulから提供されている他、RedHat 8.1.1でも使用することができる。バージョン7ストリームはオリジナルのMercurialリポジトリであるhg.openjdk.java.netからビルドされるが、MercurialからGitへの変換とGitHubへのマイグレーションを目指しているProject Skaraのアーリーアダプタとして、今後のバージョン8の開発は、新設されたopenjdk/jmc GitHubリポジトリで進められることになっている。AdoptOpenJDKにはこのバージョン8リリース用のJMCナイトリービルドがある。

JFRで使用されているテクノロジは進化を続けていて、Java 14ではJEP 349により、レコードデータをダンプして分析用にロードする操作に代えて、JVMからのイベントをストリームすることが可能になる。これによって将来のJVMでは、JFRインターフェースを使ってデータ収集エンジンにアップロードしたメトリクスを、ダッシュボードに継続的に表示できるようになる。Java 14は現在アーリーアクセスリリースで、最終リリースは来月に予定されている。JMCのメイン開発者であるMarcus Hirt氏が開発したopen tracing pluginでは、オープンスパンスコープ(open span scopes)をJFRレコードに統合することで、より詳細な分析が可能になる。これ

この記事に星をつける

おすすめ度
スタイル

BT