ホームページ  >  記事  >  Java  >  JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

不言
不言転載
2018-10-22 16:00:473538ブラウズ

この記事の内容は、JDK 独自の jmap と jhat を使用して Java プロセスの実行状況を監視する方法についてです。必要な方は参考にしていただければ幸いです。

Java プロセスを実行するために、JDK には、Java 開発者がプロ​​セス内で作成されるオブジェクト インスタンスの数、消費量、必要なメモリ量など、実行中のプロセスのさまざまな状態を監視できるツールが多数付属しています。 、など。

この記事はJDK1.8をベースに書いています。

私は以下の最も単純な Java クラスを作成しました。これには、5 秒ごとにカウンターの値を増加させる無限ループが含まれています。

package jmap;
class Tool{
    private int count = 0;
    public void Run() throws InterruptedException{
        while(true){
            System.out.println("Hello: " + this.count++);
            Thread.sleep(5000);
        }
    }
}
public class JMapTest {
    public static void main(String[] args) throws InterruptedException {
        Tool tool = new Tool();
        tool.Run();
    }
}

このアプリケーションを Eclipse で実行します。

以下では、jmap と jhat を使用してこの実行中のプロセスを監視する方法について説明します。

1. まず、この Java 実行プロセスの ID を取得します: 15392。 Windows に付属のタスク マネージャーを直接使用してプロセス ID を取得しました。

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

2 次のコマンド ラインを使用します:

jmap -dump:format=b,file=c:tempheapstatus.bin 15392

jmap は JDK によって提供されるツールで、JDK インストール ディレクトリの bin フォルダーにあります。

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

コマンド ラインを実行すると、ヒープ ダンプ ファイルが生成されます: headstatus.bin

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

3. これで、別の JDK ツール jhat を使用して、このダンプ ファイルを読み取り、解析できるようになります。コマンドラインを使用します:

jhat c:tempheapstatus.bin

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

#分析が完了すると、jhat によって出力されるプロンプトが表示されます。そのスナップショットは解決されました。これはローカル サーバーのポート 7000 から表示できます。

http://localhost:7000 にアクセスすると、jmap の解析結果が表示されます。

localhost:7000 in browser:

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

ハイパーリンク「jmap Tool」をクリックして詳細を入力します。下の図は私のツール クラス インスタンスのメンバー変数 @0x7166babd8、つまりカウンターの値が 49 まで蓄積されました。

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

#4 コマンド ラインが気に入らない場合は、Eclipse プラグイン、MAT – メモリ アナライザー ツールを使用することもできます。 jmap での作業を完了するには、 jhat コマンドにも同じ機能があります。

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

このプラグインをインストールすると、Eclipse に追加のビューが表示されます:

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

jmap によって生成されたヒープ ダンプ ファイルを MAT ビューに直接ドラッグすると、結果が自動的に解析されて表示されます。

「アドレスでオブジェクトを検索」ボタンをクリックします。

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

localhost:7000 で前に表示したオブジェクトも表示されます。例の詳細:

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法

JDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法 で前に得たのと同じ結果が得られます。

以上がJDK の組み込み jmap および jhat を使用して Java プロセスの実行ステータスを監視する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。