スレッドの状態
スレッドの状態 フィルターの目的は 「スレッドが指定された状態にあったすべての時間間隔を選択する」ことです。 たとえば、特定のスレッドが動作していなかった時間間隔のみを分析したい場合、 スレッド ダイアグラムでスレッドを選び、 スレッドの状態 フィルターで 待機 状態を選択します。
スレッドは、一度に次の 2 つの状態のいずれかになります。

状態の名前。
この状態で費やされた時間は、選択されたすべてのスレッドで合計されました。
選択された合計時間に対するこの状態で費やされた時間のパーセンテージ。
スレッド状態フィルターを適用するには
フィルターで目的のスレッド状態を選択します。
状態を選択すると、他のフィルターはスレッドが選択状態になっている時間間隔のデータのみを表示します。

スレッドの状態: 実行
特定のスレッドによって実行された作業を分析する場合、たとえば、スレッドで最も頻繁に実行されたメソッドを調べる場合は、 実行中 状態を選択します。
実行中 状態を選択した後、 実行: CPU コア サブフィルターを使用して結果のフィルターを微調整できます。
実行: CPU コア
このサブフィルターは、論理 CPU コア間の作業の分散を示します。 このフィルターは、2 つのシナリオで潜在的に有用です。
スレッドを単一のコアにバインドする価値があるかどうかを評価します(コア間の切り替えが頻繁に行われると、追加の負荷がかかります)。
スレッドのジョブを複数のスレッドに分割する価値があるかどうかを評価する(スレッドが完全に 1 つのコアをロードし、他のコアがロードされていない場合)

論理 CPU コア番号。
このコアでスレッドが実行された時間は、 選択されたすべてのスレッドについて合計されます。
選択した合計時間に対してスレッドがこのコアで実行された時間のパーセンテージ。
実行するには: CPU コアフィルター
フィルターで目的の論理コアを選択します。
コアを選択すると、選択したコアでスレッドが実行された時間間隔のデータのみが他のフィルターに表示されます。

スレッドの状態: 待機
待機 状態は、スレッドが現在実行されておらず、ロック解除を待っていることを示します。 これは、たとえば、同期オブジェクトの競合の結果、他のスレッドによって切り替えられたガベージコレクションの結果などである可能性があります。
待機 スレッド状態を選択して、スレッドが中断された時期と理由を理解します。 例: スレッドが他のスレッド上のガベージコレクションのためにどれくらいの時間待ったかを理解するには、 スレッド ダイアグラムのスレッドと スレッドの状態 の 待機 状態を選択します。 時間は、 イベント フィルターの ガベージコレクション に表示されます。
待機 状態を選択した後、 待機: 起動者 サブフィルターを使用して結果のフィルターを微調整できます。
待機: 起動者
待機: 起動者 サブフィルターは、選択したスレッドをロック解除したスレッドとプロセスを表示します。 これは、誰が特定のスレッドをブロックしたのかを理解する必要がある場合に便利です。

スレッドまたはプロセス名。
アクティブなスレッドまたはプロセスによってブロック解除される前に、選択されたすべてのスレッドに対して合計されたタイムスレッド。
アクティブ化しているスレッドまたはプロセスによって、選択された合計時間に対するスレッドのブロックが解除されるまでの、スレッドの待機時間の割合。
例: アプリのメインスレッドを誰がブロックしたかを理解したい。 スレッド ダイアグラムでメインスレッドを選択し、 スレッドの状態 で 待機 状態を選択します。 待機: 起動者 サブフィルターは次のことを示しています。
スレッド #2 90 ミリ秒 90%
スレッド #1 10 ms 10%
これは、メインスレッドが 100 ミリ秒間ブロックされたことを意味します。 ケースの 90%(全体で 90 ミリ秒)では、これはスレッド #2 が原因であり、ケースの 10%(全体で 10 ミリ秒)はスレッド #1 が原因でした。
Waiting を適用するには: フィルターによって起動
フィルターで目的のアクティブ化スレッドまたはプロセスを選択します。
スレッドまたはプロセスを選択すると、指定されたアクティブ化スレッドまたはプロセスによってブロック解除される前に、スレッドが待機した時間間隔のデータのみが表示されます。
