VisualVMとVS Codeの統合

GraalVM Tools for Java拡張機能は、VisualVM (オールインワンのJava (およびポリグロット)のモニタリングとトラブルシューティング・ツール)との統合を提供します。これにより、VS CodeへのビジュアルJavaツールが提供されます。

VisualVMとVS Codeの統合

特別な起動構成(Launch VisualVM & Java 8+ Application)は、GraalVM Tools for Java拡張機能によって提供され、プロジェクトとともにVisualVMを起動します。使用を開始するには、次のようにします:

  1. アクティビティ・パネルで「Gr」をクリックし、こちらの説明に従って最新のGraalVMリリースをインストールしてアクティブ化します。
  2. launch.jsonファイルを作成します。まだ作成されていない場合は、launch.jsonファイルの作成リンクを使用して、「Run and Debug」アクティビティから新しいlaunch.jsonファイルを作成します。選択を求められたら、Java 8+環境を選択します。
  3. launch.jsonを開き、エディタの右下隅にある「Add Configuration…」ボタンをクリックします。GraalVM: VisualVMを使用したJava 8+アプリケーションの起動構成を選択します。編集後、必ずlaunch.jsonファイルを保存してください。
  4. プロジェクトの開始時に実行する処理を選択します。Grアクティビティ・ビューのVisualVMペインで、「Configure」アクションをクリックして、プロジェクトの開始時に実行するアクションを定義します。
  5. 「Run and Debug」アクティビティで「Launch VisualVM & Java 8+ Application」起動構成を選択します。「Start Debugging」または「Run Without Debugging」アクションを使用して、現在のプロジェクトを開始します。

プロジェクトの開始中に、VisualVMペインのプロセス・ノードに「pid pending」ラベルが付いたプロジェクト名が表示されます。プロジェクト・プロセスが開始されると、プロセス・ノードが更新されて、そのプロセスID (PID)が表示され、ステップ3で定義されたアクションが実行されます。

VisualVMペイン

VisualVMペインには、次のアクションおよび機能があります:

VisualVMの起動

VisualVMツールを起動するアクションは、アクティブなGraalVMインストールにバンドルされています。プロセスがモニタリング用にすでに選択されている場合は、VisualVMにより、定義済のタブでプロセス・ビューが開きます。モニタリング対象として選択されたプロセスがもう実行されていない場合、アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しでは、プロセス・コンテキストなしでVisualVMが再び起動されます。

その他のアクション...→[概要/モニター/スレッド/サンプラ]ビューを事前選択

プロセス・ビューを開く際にどのタブが選択されるかを定義するための選択肢です。

VS CodeのVisualVMペイン

その他のアクション...→VisualVMウィンドウを前面に移動

選択すると、VisualVMでアクションが呼び出されるたびに、VisualVMウィンドウが最上部のウィンドウになります。特定のウィンドウ・システムでは影響がない場合があります。

その他のアクション...→ソース統合への移動の有効化

VS Codeでプロジェクトが開いている場合にのみ使用できます。選択した場合、VisualVMは、様々なVisualVMビューの「Go to Source」アクションの起動時にVS Codeエディタでソース・コードを開くように構成されます。VisualVMのオプション|ソース設定は、現在のプロジェクトのソース・ルートおよびアクティブなGraalVMインストール・ソースによって移入され、VS Codeはソース・ビューアに設定されます。

VisualVMの「Go to Source」により、VS CodeプロジェクトおよびアクティブなGraalVMソースで定義されたソースが開くことに注意してください。プロジェクト・ライブラリのソースおよびその他の依存関係は、VisualVMから開けません。「Enable Go to Source integration」の選択を解除して、VisualVMのオプション|ソース設定でソース・ルートおよびソース・ビューアの手動定義を有効にします。

ノート: 「Go to Source」アクションは、一部のVisualVMビューでは現在使用できず、特定のJava言語機能に対するいくつかの制限があります。詳細は、ソースのサポートを参照してください。

プロセス

VisualVMによってモニタリング対象として選択されたプロセスを追跡するノード。デフォルトでは、プロセスは選択されず、未選択の値が表示されます。プロセス・ノードで使用可能な「Select process」アクションを使用するか、プロセス選択が必要なアクションを呼び出すか、コマンド・パレットで「Open Process In VisualVM」を使用するか、特別な「Launch VisualVM & Java 8+ Application」起動構成を使用してプロジェクトを開始することで、プロセスをモニタリング対象として選択できます。

モニタリング対象のプロセスを選択すると、現在のユーザーが開始したローカルJavaプロセスのリストが表示されます(アクティブなGraalVMのjpsツールを使用して移入されます)。各プロセスのメイン クラスは、使用可能な場合はプロセスIDと共に表示されますプロセスがVisualVM (-Dvisualvm.display.name=CustomName)にカスタム名を表示するように構成されている場合は、メイン・クラスのかわりにカスタム名が表示されます。各プロセス・アイテムには、プロセスに渡される引数(使用可能な場合)とともに完全修飾されたメイン・クラス名も表示されます。

選択したプロセスが終了すると、VisualVMの起動またはプロセス選択を必要とするアクションのいずれかの最初の呼出し時にノードはクリアされます。

開始時

プロセスの開始時に実行するアクションを定義するノード。この機能を使用するには、「Launch VisualVM & Java 8+ Application」起動構成を使用してプロジェクトを開始する必要があります。次の中から選択できます。

デフォルトでは、プロセスを開くの選択肢が選択されています。つまり、プロジェクト・プロセスが(「Launch VisualVM & Java 8+ Application」起動構成を使用して)開始されると、VisualVMも起動され、プロジェクト・プロセスが開き、定義されたタブが選択されます。デフォルトの選択肢を変更するには、「Configure」アクションを使用します。

スレッド・ダンプ

モニタリング対象として選択されたプロセスからスレッド・ダンプを取得および表示するためのノードおよびアクション。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「Take thread dump」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

ヒープ・ダンプ

モニタリング対象として選択されたプロセスからヒープ・ダンプを取得および表示するためのノードおよびアクション。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「Take heap dump」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

CPUサンプラ

モニタリング対象として選択されたプロセスの定義済設定を使用して、CPUサンプリング・セッションの開始、スナップショット取得および停止を行うノードおよびアクション。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、CPUサンプラ・アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

CPUサンプラには、次のアクションがあります:

メモリー・サンプラ

モニタリング対象として選択されたプロセスの定義済設定を使用して、メモリー・サンプリング・セッションの開始、スナップショット取得および停止を行うノードおよびアクション。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、メモリー・サンプラ・アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

メモリー・サンプラには、次のアクションがあります:

メモリー・サンプラ・ノードをさらに展開して、メモリー・サンプリング設定にアクセスできます。「構成」アクションを使用して、次の設定を構成できます:

JDK Flight Recorder

モニタリング対象として選択されたプロセスの定義済設定を使用して、JDK Flight Recorder (JFR)セッションを開始、ダンプおよび停止するノードおよびアクション。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、JFRアクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

JFRには、次のアクションがあります:

JFRノードをさらに展開して、フライト・レコーダの設定にアクセスできます。「構成」アクションを使用して、次の設定を構成できます:

ノート: 現在のアクティブなGraalVMインストールがGraalVM 21.2.0より古い場合は、プロセス・ノードと開始時ノードのみがVisualVMペインに表示されます。開始時ノードでは、「何もしない」およびプロセスを開くプロセスの選択肢のみが提供されます。その他のアクション...メニューでは、VisualVMを前面に移動およびソース統合への移動の有効化アクションは提供されません。すべての機能にアクセスするには、最新のGraalVMリリースを必ず使用してください。

使用可能なコマンド

VS Codeで最新のGraalVMをアクティブにインストールすると、VisualVMに関連する次のクイック・アクションが使用可能になります:

コマンド・パレットから使用できるVisualVMコマンド

ノート: 現在のアクティブなGraalVMインストールがGraalVM 21.2.0より古い場合は、「VisualVM: Start VisualVM」および「VisualVM: Open Process In VisualVM」コマンドのみをコマンド・パレットから使用できます。GraalVMを最新リリースにアップグレードします。

VisualVM: Start VisualVM

アクティブなGraalVMインストールにバンドルされているVisualVMツールを起動します。プロセスがモニタリング用にすでに選択されている場合は、VisualVMにより、定義済のタブでプロセス・ビューが開きます。モニタリング対象として選択されたプロセスがもう実行されていない場合、アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しでは、プロセス・コンテキストなしでVisualVMが再び起動されます。

VisualVM: VisualVMでプロセスを開く

プロセス選択を要求し、選択したプロセスをVisualVMの定義済のタブで開きます。

VisualVM: スレッド・ダンプの取得

モニタリング対象として選択したプロセスからスレッド・ダンプを取得して表示します。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「Take thread dump」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

VisualVM: ヒープ・ダンプの取得

モニタリング対象として選択したプロセスからヒープ・ダンプを取得して表示します。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「Take heap dump」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

VisualVM: CPUサンプリングの開始

定義された設定を使用して、モニタリング対象に選択したプロセスの新しいCPUサンプリング・セッションを開始し(まだ実行されていない場合)、VisualVMの「サンプラ」タブでプロセスを開きます。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「Start CPU sampling」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

VisualVM: メモリー・サンプリングの開始

定義された設定を使用して、モニタリング対象に選択したプロセスの新しいメモリー・サンプリング・セッションを開始し(まだ実行されていない場合)、VisualVMの「サンプラ」タブでプロセスを開きます。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「Start memory sampling」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。

VisualVM: フライト記録の開始

定義された設定を使用して、モニタリング対象に選択したプロセスのフライト記録セッションを開始し(まだ実行されていない場合)、VisualVMの定義済のタブでプロセスを開きます。モニタリング対象のプロセスがまだ選択されていない場合、プロセス選択が要求されます。モニタリング対象として選択されたプロセスがもう実行されていない場合、「フライト記録の開始」アクションの起動により、プロセスの選択の解除のみが行われ、通知が表示されます。それ以降のアクション呼出しは、別のプロセス選択を要求します。