![]() 前 |
「スレッド」タブでは、スレッドのアクティビティをモニターできます。このタブには、アプリケーションによる時間に沿った活動中のスレッドの使用率を示すグラフ、アプリケーションで使用されるすべての活動中のスレッドの表、選択したスレッドのスタック・トレースが表示されます。
ライブ・スレッド・グラフ
「ライブ・スレッド・グラフ」には、Javaアプリケーションで開始されるスレッド数が時間に沿って表示されます。デフォルトでは、次の属性がグラフに表示されます。
ピーク・ライブ・スレッド数
合計ライブ・スレッド数
デーモン・ライブ・スレッド数
グラフの属性の追加および削除の詳細は、属性の操作を参照してください。グラフの使用の詳細は、グラフの使用を参照してください。
ライブ・スレッド
「ライブ・スレッド」パネルには、Javaアプリケーションで開始された活動中のスレッドの情報の表が表示されます。デフォルトでは、表に次の列が含まれます。
スレッド名: スレッドの名前。
スレッドの状態: スレッドの状態。スレッドの状態は、NEW
、RUNNABLE
、BLOCKED
、WAITING
、TIMED_WAITING
またはTERMINATED
のいずれかになります。
ブロック回数: スレッドがBLOCKED
状態だった回数。
合計CPU使用率: スレッドで使用されるCPUリソースの合計に対する割合(%)。この値はデフォルトではフェッチされません。有効にするには、表の上部の「CPUプロファイリング」を選択します。
デッドロック: スレッドがデッドロックされているかどうか。この値はデフォルトではフェッチされません。有効にするには、表の上部の「デッドロック検出」を選択します。
割当て済バイト数: スレッドに割り当てられているバイト数。この値はデフォルトではフェッチされません。有効にするには、表の上部の「割当て」を選択します。
最後の3つの値をリアルタイムでモニタリングすると、大量のシステムリソースを消費します。このため、デフォルトでは無効になっています。これらの値のモニタリングを有効にするには、表の上部の対応するチェック・ボックスを使用します。
表でスレッドをフィルタするには、フィルタ列(通常はスレッド名)を選択し、表の上部のテキスト・フィールドにフィルタ文字列を指定します。
表の外観を構成するには、「ライブ・スレッド」パネルの右上隅の「表の設定」ボタンをクリックして、表示または非表示にする列を選択します。列ごとに、幅の最小値、重みおよび初期ソート順を設定できます。デフォルトの列に加えて、次を追加できます。
ブロック時間: スレッドがBLOCKED
状態だった累積時間(ミリ秒)。
ロック名: このスレッドがアクセスを試行しているロックされているオブジェクト、またはこのスレッドが現在のスレッドだったときのwait()
と呼ばれるオブジェクト。
ロック所有者ID: このスレッドがアクセスを試行しているオブジェクトをロックしたスレッドの識別子。
ロック所有者名: このスレッドがアクセスを試行しているオブジェクトをロックしたスレッドの名前。
ネイティブ: スレッドが現在Java Native Interface (JNI)を使用してネイティブ・コードを実行しているかどうか。
一時停止: スレッドが一時停止されているかどうか。
スレッドID: スレッドの識別子。
待機回数: スレッドがWAITING
またはTIMED_WAITING
状態だった回数。
待機時間: スレッドがWAITING
or TIMED_WAITING
状態だった累積時間(ミリ秒)。
選択したスレッドのスタック・トレース
「ライブ・スレッド」表でスレッドを選択すると、完全なスタック・トレースが下の「選択したスレッドのスタック・トレース」パネルに表示されます。スタック・トレースには、現在実行されているメソッドまでのすべてのメソッドのコール・パスが含まれます。これは、たとえば、コード実行でデッドロックや予期しない停止につながるメソッドを識別する必要がある場合に便利です。
「ライブ・スレッド」表で複数のスレッドを選択し、[Ctrl]キーを使用して複数のスタック・トレースを表示できます。