Profilerは、CPU、メモリ、ヒープ使用量などのアプリケーションに関する洞察を提供します。 また、アプリケーションスレッドの詳細についても説明しています。 この章では、VisualVMtool for Javaアプリケーションプロファイリングの使用方法について説明します。 CPUやヒープなどのエンティティをプロファイルできます。
このチュートリアルの読者は、アプリケーションprofilerconceptsに精通していることをお勧めします。
はじめに
VisualVMは、JDKツールを統合し、強力なprofilingcapabilitiesを提供するビジュアルツールです。 これにより、ヒープデータの生成と分析、メモリリークの追跡、ガベージコレクタの監視、メモリとCPUのプロファイリングを実行できます。
-
JVM上で実行されているローカルおよびリモートJavaアプリケーションのための視覚的なインターフェイス。
-
アプリケーションのメモリ使用量とアプリケーションの実行時の動作の監視。
-
アプリケーションスレッドの監視
-
異なるアプリケーションへのメモリ割り当ての分析。
-
スレッドダンプ-デッドロックや競合状態の場合に非常に便利です。
-
ヒープダンプ-ヒープメモリ割り当てを分析するのに非常に便利です。
設定
このセクションでは、VisualVMを設定するために実行される手順を学びます。 手順は次のとおりです。−
-
ここからダウンロードしてください。
-
zipファイルを抽出します。
-
etc/visualvmに移動します。confファイルを開き、このファイルに次の行を追加します−
visualvm_jdkhome=<path of JDK>
-
JDKがインストールされている場合は、次の手順に従いますC:\Program Files\Java\jdk-9.0.1ディレクトリは次のようになります−
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
監視アプリケーション
アプリケーションを監視する方法を見てみましょう。 同じことを理解するために、次の手順を検討してくださ−
- visualvmをダブルクリックします。exeファイル。
- 左ペインからアプリケーションを選択します。
- モニタータブを選択します。
CPU、ヒープ、クラス、スレッドに関する詳細を取得するウィンドウが表示されます。 使用法を具体的にするには、任意のグラフの上にマウスを置きます。 上記のスクリーンショットでヒープの使用法を確認できます。
スレッドに関する洞察
Javaアプリケーションには、複数の実行スレッドを含めることができます。 スレッドの詳細を知るには、特定のアプリケーションの[スレッド]タブを選択します。 これは、ライブスレッドとデーモンスレッドの数のような様々な統計aboutthreadsを与えるでしょう。 別のスレッドの状態は、実行、睡眠、待機、公園、モニターです。
Sampling Application
VisualVMはCPU、メモリサンプリング、メモリリーク検出をサポートしています。 アプリケーションをサンプルするには、アプリケーションを選択し、サンプルタブを選択します−
CPU sampling
CPUサンプリングの場合は、次のスクリーンショットに示すようにCPUボタンをクリックします−
メモリプロファイリング
メモリプロファイリングの場合は、次のスクリーンショットに示すようにメモリボタンをクリックします−
メモリリーク
アプリケーションが実行中に、プログラムによって自動的に削除されないオブジェクトでヒープをゆっくりといっぱいにすると、メモリリーク
プログラムで使用されていないオブジェクトが削除されない場合、そのオブジェクトはメモリに残り、GCはその領域を再利用できません。 Yourapplication内のバイト数とインスタンス数が、すべてのスペースを使用するまで、プログラム内で絶えずかつ大幅に増加する場合、これはメモリリークの兆候とな
プロファイリングアプリケーション
このセクションでは、アプリケーションのプロファイリング方法を学びます。 アプリケーションをプロファイルするには、左ペインからアプリケーションを選択し、プロファイルタブをクリックします−
CPUプロファイリング
CPUプロファイリングを実行するには、以下のスクリーンショットに示すようにCPUボタンをクリックします−
メモリプロファイリング
CPUプロファイリングを実行するには、以下のスクリーンショットに示すようにCPUボタンをクリックします−