Intellij-idea-profiling
Intellij Idea-プロファイリング
プロファイラーは、CPU、メモリ、ヒープ使用量など、アプリケーションに関する洞察を提供します。 また、アプリケーションスレッドに関する詳細も提供します。 この章では、JavaアプリケーションのプロファイリングにVisualVMツールを使用する方法について説明します。 CPUやヒープなどのエンティティをプロファイルできます。
このチュートリアルの読者は、アプリケーションプロファイラの概念に精通していることが推奨されます。
前書き
VisualVMは、JDKツールを統合し、強力なプロファイリング機能を提供するビジュアルツールです。 ヒープデータの生成と分析、メモリリークの追跡、ガベージコレクタの監視、メモリとCPUのプロファイリングを実行できます。
利点
- JVMで実行されているローカルおよびリモートのJavaアプリケーションのビジュアルインターフェイス。
- アプリケーションのメモリ使用量とアプリケーションのランタイム動作の監視。
- アプリケーションスレッドの監視
- さまざまなアプリケーションへのメモリ割り当てを分析します。
- スレッドダンプ-デッドロックや競合状態の場合に非常に便利です。
- ヒープダンプ-ヒープメモリ割り当ての分析に非常に便利です。
設定
このセクションでは、VisualVMを構成するために実行される手順を学習します。 手順は次のとおりです-
- https://visualvm.github.io/downloadl [こちら]からダウンロードしてください。
- 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アプリケーションには、複数の実行スレッドを含めることができます。 スレッドの詳細を知るには、特定のアプリケーションの「スレッド」タブを選択します。 ライブスレッドやデーモンスレッドの数など、スレッドに関するさまざまな統計情報を提供します。 スレッドの状態には、実行中、スリープ中、待機中、パーク、モニターがあります。
サンプリングアプリケーション
VisualVMは、CPU、メモリサンプリング、メモリリーク検出をサポートしています。 アプリケーションをサンプルするには、アプリケーションを選択し、サンプルタブを選択します-
CPUサンプリング
CPUサンプリングの場合、次のスクリーンショットに示すようにCPUボタンをクリックします-
メモリプロファイリング
メモリプロファイリングについては、次のスクリーンショットに示すように、メモリボタンをクリックしてください-
メモリリーク
アプリケーションが実行中に、プログラムによって自動的に削除されないオブジェクトでヒープがゆっくりといっぱいになると、メモリリークが発生します。
プログラムで使用されていないオブジェクトが削除されない場合、そのオブジェクトはメモリ内に残り、GCはそのスペースを再利用できません。 アプリケーション内のバイト数とインスタンス数が、プログラム内で絶えず大幅に増加し、すべてのスペースを使い果たす場合、これはメモリリークを示している可能性があります。
プロファイリングアプリケーション
このセクションでは、アプリケーションのプロファイル方法を学習します。 アプリケーションをプロファイルするには、左ペインからアプリケーションを選択し、プロファイルタブをクリックします-
CPUプロファイリング
CPUプロファイリングを実行するには、以下のスクリーンショットに示すようにCPUボタンをクリックします-
メモリプロファイリング
CPUプロファイリングを実行するには、以下のスクリーンショットに示すようにCPUボタンをクリックします-