スレッドのボトルネックの識別

スレッド・ビューは、スレッドのボトルネックを検出する基本ビューです。プログラムの各スレッドのアクティビティー記録が表示され、スレッドの競合とデッドロックが示されます。

前提条件: スレッド・データの収集

スレッドが待っているリソースがなかなか使用可能な状態にならない場合は、競合が発生します。競合が発生するとコードの実行に時間がかかりますが、そのうちに解消される可能性があります。

デッドロックは、あるスレッドが別のスレッドにロックされたリソースを待っているときに、その別のスレッドが最初のスレッドにロックされたリソースを待っている場合に発生します。3 つ以上のスレッドがデッドロックに関連することもあります。デッドロックが自動的に解決されることはありません。これが原因で、アプリケーション全体またはデッドロックが発生した部分が停止することがあります。

スレッドの競合とデッドロックを見つけるには、以下のようにします。

  1. スレッド・ビューを表示します。「スレッド分析」プロファイル・リソースを右マウス・ボタン・クリックして、ポップアップ・メニューで「アプリケーションから開く」 > 「スレッド・ビュー」の順に選択します。
  2. スレッド・ビューで、スレッド間の垂直矢印を探します。 単一の矢印は、スレッド競合 (1 つのスレッドが、別のスレッドによるロックの解除を待っている状態) を示します。複数の矢印はデッドロックを示します。ひし形のマーカーは、あるスレッドがロックの解除を待っているが、そのロックを保持しているスレッドを判別できないことを示します。
  3. ロックの解除を待っているスレッド・セグメントにカーソルを合わせます。ロックの名前およびロックを保持しているスレッドを示すツールチップが表示されます。

競合の例を以下に示します。

「スレッド・ビュー」ウィンドウと、競合を示す垂直矢印のイメージ

デッドロックの例を以下に示します。

「スレッド・ビュー」ウィンドウと、デッドロックを示す対の垂直矢印のイメージ

注: 実行時間分析プロファイル・タイプを使用してプログラムのプロファイルを作成すると、スレッド・データを収集および表示できますが、その対象は実行およびデッドの状態のスレッドに限られます。ボトルネックを表示するには、プロファイル・セットにスレッド分析プロファイル・タイプが含まれている必要があります。

以下のトピックでは、スレッド・ビューの操作方法を説明します。

親トピック: スレッドのボトルネックの検出

関連タスク
スレッドのボトルネックの背後にあるメソッドの識別

関連資料
スレッド・ビュー

使用条件 | フィードバック
(C) Copyright IBM Corporation 2004. All Rights Reserved. (C) Copyright IBM Japan 2004