日々の開発では、メモリリーク、デッドロック、CPU など、さまざまな問題に常に遭遇します。問題に遭遇することは怖いことではありません。重要なのは、これらのエラーをどのようにトラブルシューティングし、適切な解決策を見つけるかです。しかし、多くの人々は、これらの問題の根本的な原因を見つけることができないことがよくあります。したがって、この記事の主な目的は、問題がどこにあるのかを分析するためのツールを習得できるようにすることです。 前回の記事では、主にJVMのメモリ構造、クラスロードの仕組み、ガベージコレクションの仕組みについて分析しました。記事の順序も段階的になっています。この記事では、主に JDK に付属するツールを分析し、理論を実践に適用します。 まず、これから説明するツールの概要を説明し、次にそれらを 1 つずつ分析してみましょう。 まず、これから説明するツールの概要を説明し、次にそれらを 1 つずつ分析してみましょう。 1. パフォーマンス監視ツールの概要 ツールは主に問題を解決するために作成されます。これらのツールが存在するのは、プログラムにパフォーマンス上の問題があるためです。実際、JDK をダウンロードした後、それらのツールは SUN から提供されました。 JDK インストール ディレクトリを確認すると、そのようなツールが多数あることがわかります。 このような exe ファイルは多数見つかりますが、その多くはパフォーマンス監視ツールです。いくつか抜粋して説明させていただきます。
いくつかの一般的なツールがリストされています。実際には、JDK に付属するツールよりも優れたツールがいくつかあります。今後の記事でそれらをリストします。さて、これらのツールの機能とその使用方法を 1 つずつ分析してみましょう。 2. ツール 1. jps: 仮想マシンプロセスステータスツール jps は主に、JVM で実行されているプロセスのステータス情報を出力するために使用されます。構文の形式は次のとおりです。
ホストまたはサーバーの ID。指定されていない場合は、現在のホストまたはサーバーがデフォルトになります。 Windows 10 でテストしました。もちろん、Linux でも試すことができます。方法は同じですが、結果は異なる場合があります。テストするには、さまざまなパラメータ オプションを選択できます。 CMDを開いて対応するコマンドを入力します 2. jstack: スタックトレースツール jstack は、現時点での仮想マシンのスレッド スナップショットを生成するために使用されます。構文の形式は次のとおりです。
vmid は Java 仮想マシン ID であり、通常は Linux/Unix システム上のプロセス ID です。 CMDで直接操作してみましょう: 3. jstat: 仮想マシン統計監視ツール jstat は、仮想マシンのさまざまな動作状態情報を監視し、ローカルまたはリモートの仮想マシン プロセスにおけるクラスのロード、メモリ、ガベージ コレクション、JIT コンパイルなどの動作データを表示できます。構文の形式は次のとおりです。
このパラメータによって表されるオプションは、ユーザーが照会する仮想マシン情報を表し、クラスのロード、ガベージ コレクション、およびランタイム コンパイル ステータスの 3 つのカテゴリに分かれています。 2番目のパラメータ: vmid vmid は Java 仮想マシン ID であり、通常は Linux/Unix システム上のプロセス ID です。 3番目のパラメータ: 間隔 間隔はサンプリング時間間隔であり、 4番目のパラメータ: count カウントはサンプルの数を示します。 次に、このツールを使用して、CMD を開き、対応するコマンドを入力します。 4. jinfo: 仮想マシンのパラメータをリアルタイムで表示および調整する コマンド形式:
最初のパラメータ: オプション
2番目のパラメータ: pid 表示するプロセス ID を指定します。 CMDでテスト: 5. jmap: 仮想マシンのメモリダンプスナップショット(ヒープダンプファイル)を生成する jmap (Java 用メモリ マップ) は、ヒープ ダンプのスナップショット (通常はヒープダンプまたはダンプ ファイル) を生成するために使用されます。 jmap コマンドが適用できない場合は、-XX:+HeapDumpOnOutOfMemoryError パラメータを使用して、仮想マシンのメモリがオーバーフローしたときにスナップショットを生成できます。または、kill -3 pid を使用して生成することもできます。 jmap の役割は、ダンプ ファイルを取得することだけではありません。また、スペースの使用状況や現在使用中のコレクターなど、ファイナライズ実行キュー、Java ヒープ、永続世代に関する詳細情報を照会することもできます。コマンドの形式は次のとおりです。
最初のパラメータ: 2番目のパラメータ: vmid vmid は Java 仮想マシン ID であり、通常は Linux/Unix システム上のプロセス ID です。 cmdでテスト: 6. jhat: メモリダンプスナップショットを分析するが、推奨されないし、遅い このツールは機能が比較的単純で、実行に時間がかかるため、使用はお勧めしません。 MATが推奨されます。 7. JConsole: JMX のビジュアル管理ツール 以前のツールと比較すると、このツールはより頻繁に使用され、非常に重要です。さまざまなデータをグラフィカルに表示できる Java GUI 監視ツールです。また、リモート接続を通じてリモート サーバー VM を監視することもできます。 VM およびリモート VM を監視するために使用される、Java で記述された GUI プログラム。非常に使いやすく、非常に強力な機能を備えています。 cmd に jconsole と入力し、プロセスを選択します。 (前提として、スレッドを作成し、IDE ツールで実行します) 次に、対応するオプションを選択すると、このツールに入ると次のインターフェイスが表示されます。 そこにはメニューがあり、そのうちの 1 つを選択して表示できます。このツールは非常に使いやすく、私が以前に最も頻繁に使用したツールでもあります。 8. VisualVM: オールインワンの障害管理ツール このツールも非常に強力です。これは、ローカルおよびリモート データを表示できるグラフィカル インターフェイスに基づく JAVA GUI 監視ツールです。 Jvisualvm は jconsole と同じように使用されます。コマンドラインに jvisualvm と入力して起動できます。 jvisualvm インターフェースはより美しく、データはよりリアルタイムです。 上部には、表示するさまざまなオプションを選択できるメニューもあります。自分で試してみるのが一番です。 結論 これらのツールについて私が言いたいことはこれだけです。記事の冒頭で、JDK には非常に多くのツールが付属しており、JDK バージョンの継続的な更新によりツールも増えていることがわかりました。それぞれを習得するには時間がかかりすぎます。遭遇した問題を検索し、どのようなツールが使用できるかを確認できます。リストされているツールは、初心者に適しています。 この記事はWeChat公式アカウント「Yugong Yaoyishan」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、Yugongyaoyishanの公式アカウントまでご連絡ください。 |
<<: クラウドコンピューティングの導入は単なる紙上の作業ではない
>>: 2021 年に注目すべき 8 つのエッジ コンピューティング トレンド
クラウド環境での変更管理は、企業が急速に変化する環境に対応し、成功の可能性を高める道筋を作成するのに...
SEO 最適化を行う際、フレンドリーリンクを探す際に、自分のウェブサイトよりも重みの高いウェブサイト...
ブログ執筆で良い成果を得るには、一定の検索エンジン最適化 (SEO) スキルが必要です。ここでは、ブ...
私はオンライン マーケティングに触れてまだ間もない初心者ですが、ほとんどのネットユーザーと同様に、か...
5月27日、Techo Day Tencent Technology Open Dayイベントでは、...
bytedynastyは最近設立された中国系企業です。現在は香港VPS事業を中心に運営しており、将来...
6月はウェブマスターたちの間で大騒ぎが起こりました。次々とアップデートが行われ、「有名なウェブサイト...
Baiduについてのみ話します - 他のトピックについては後で議論します最近、ゴミステーションをいく...
Zenlayerは南アジアのバングラデシュに自社データセンターを持ち、バングラデシュのサーバー、CD...
2月28日、アリババの音声AI技術がMITの2019年「世界トップ10の画期的技術」の1つに選ばれま...
Ramnode の VPS は、生涯 48% の割引を提供しています。アムステルダム、シアトル、アト...
現時点では、答えはすでに非常に明確です。ライブストリーミング電子商取引は電子商取引の主流の形態になっ...
最近はウェブサイトを作る人が増えており、その多くはローカルウェブサイトを作っています。これは新興の人...
「双十一」は13年目に入り、ほぼすべての電子商取引プラットフォームが準備を進めているが、李佳琦と魏亜...
1. 背景近年、パブリッククラウドの発展に伴い、パブリッククラウドのユーザーエクスペリエンスも、本来...