次の方法で共有


[詳細設定] ダイアログ ボックス (コンカレンシー ビジュアライザー)

コンカレンシー ビジュアライザーの [詳細設定] ダイアログ ボックスを使用すると、トレースの収集方法を制御できます。 ダイアログ ボックスには、シンボル、マイ コードのみ、バッファリング、フィルター処理、CLR イベント、マーカー、プロバイダー、ファイルのタブがあります。

シンボル

コンカレンシー ビジュアライザーは、Visual Studio デバッガーと同じシンボル設定を使用します。 コンカレンシー ビジュアライザーでは、設定を使用して、パフォーマンス データに関連付けられている呼び出し履歴を解決します。 トレースを処理すると、コンカレンシー ビジュアライザーは設定ページで指定されたシンボル サーバーにアクセスします。 このデータにネットワーク経由でアクセスすると、トレース処理の速度が低下します。 シンボルを解決するために必要な時間を短縮するために、シンボルをローカルにキャッシュできます。 シンボルがダウンロードされている場合、Visual Studio はローカル キャッシュからシンボルを読み込みます。

マイ コードのみ

既定では、「Just My Code」は、Visual Studio の現在のソリューションに関連付けられている .exe および .dll ファイルのセットです。 コンカレンシー ビジュアライザーは、Just My Code 機能を使用して呼び出し履歴をフィルター処理するときに、この一連のファイルを評価します。 [マイ コードのみ] タブでは、Concurrency Visualizer がマイ コードのみに使用する位置に、.exe および .dll ファイルを含むディレクトリを追加できます。

のパス。exe および .dll ファイルは、トレースが収集されるときにトレース ファイルに格納されます。 この設定を変更しても、以前に収集されたトレースには影響しません。

バッファリング

コンカレンシー ビジュアライザーは、トレースを収集するときに、Windows イベント トレーシング (ETW) を使用します。 ETW では、イベントを格納するさまざまなバッファーが使用されます。 既定の ETW バッファー設定は、すべてのケースで最適ではない場合があり、場合によっては、イベントの損失などの問題を引き起こす可能性があります。 [バッファリング] タブを使用して、ETW バッファー設定を構成できます。 詳細については、「 イベント トレースEVENT_TRACE_PROPERTIES構造」を参照してください。

Filter

[フィルター] タブでは、コンカレンシー ビジュアライザーが収集するイベントのセットを選択できます。 イベントのサブセットを選択すると、レポートに表示されるデータの種類が制限され、各トレースのサイズが縮小され、トレースの処理に必要な時間が短縮されます。

CLR イベント

共通言語ランタイム (CLR) によって生成されたイベントにより、コンカレンシー ビジュアライザーはマネージド呼び出し履歴を解決できます。 CLR イベントの収集を無効にすると、トレース サイズは小さくなりますが、一部の呼び出し履歴は解決されません。 その結果、一部の CPU スレッド アクティビティが誤って分類される可能性があります。

ネイティブプロセス向けにデータを収集する

既定では、CLR イベントは、通常はネイティブ プロセスでは不要であるため、マネージド プロセスがプロファイリングされている場合にのみ収集されます。 場合によっては (ネイティブ プロセスが CLR をホストしている場合など)、ネイティブ プロセスの CLR イベントを収集する必要がある場合があります。 この場合は、[ ネイティブ プロセスの収集 ] チェック ボックスをオンにします。

ランダウン イベントを無効にする

CLR は、ランタイムとランダウンの 2 つのプロバイダーからイベントを生成します。 CLR ランタイム イベントを収集するが、ランダウン イベントの収集を回避する場合は、[ ランダウン イベントの無効化 ] チェック ボックスをオンにします。 これにより、コレクションによって生成されるトレース ファイルのサイズが小さくなりますが、一部のスタックが解決されない場合があります。 詳細については、「 CLR ETW プロバイダー」を参照してください。

サンプル イベント

サンプル イベントを使用して、スレッドの実行に関連付けられている呼び出し履歴を収集できます。 これらのイベントは、現在のプロセスで実行されているスレッドについて、ミリ秒あたり約 1 回収集されます。 サンプル イベントの収集を無効にすると、収集されたトレースのサイズは小さくなりますが、スレッドの実行に関連付けられている呼び出し履歴を表示することはできません。

GPU イベント

GPU イベントは、DirectX によって生成されるイベントです。 GPU イベントの収集を無効にした場合、収集されたトレースのサイズは小さくなりますが、[使用率] ビューに GPU アクティビティを表示したり、スレッド ビューで DirectX エンジン アクティビティを表示したりすることはできません。

ファイル I/O イベント

ファイル I/O イベントは、現在のプロセスに代わってディスクへのアクセスを表します。 ファイル I/O イベントを無効にした場合、トレースのサイズは小さくなりますが、スレッド ビューではディスク チャネルやディスク操作に関する情報は報告されません。

Markers

[ マーカー ] タブでは、コンカレンシー ビジュアライザーでマーカーとして表示される ETW プロバイダーのセットを構成できます。 重要度レベルと ETW カテゴリに基づいてマーカー コレクションをフィルター処理することもできます。 コンカレンシー ビジュアライザー SDK を使用していて、独自のマーカー プロバイダーを使用している場合は、スレッド ビューに表示されるように、ここに登録できます。

新しいプロバイダーを追加する

コードで コンカレンシー ビジュアライザー SDK を使用するか、 EventSource 規則に従う ETW イベントを生成する場合は、このダイアログ ボックスに登録することで、コンカレンシー ビジュアライザーでこれらのイベントを表示できます。

[ 名前 ] フィールドに、プロバイダーによって生成されるイベントの種類を説明する名前を入力します。 [GUID] フィールドに、このプロバイダーに関連付けられている GUID を入力します。 (GUID は、すべての ETW プロバイダーに関連付けられています)。

必要に応じて、カテゴリレベルまたは重要度レベルに基づいて、このプロバイダーからイベントを除外するかどうかを指定できます。 カテゴリ フィールドを使用して、コンカレンシー ビジュアライザー SDK カテゴリに基づいてフィルター処理できます。 これを行うには、カテゴリまたはカテゴリの範囲のコンマ区切りの文字列を入力します。 これは、表示する現在のプロバイダーのイベントのカテゴリを指定します。 EventSource プロバイダーを追加する場合は、カテゴリ フィールドを使用して ETW キーワードでフィルター処理できます。 キーワードはビットマスクであるため、コンマ区切りの整数の文字列を使用して、マスク内のどのビットを設定するかを指定できます。 たとえば、"1,2" は最初のビットと 2 番目のビットを設定し、10 進数で 6 に変換します。

重要度レベルの一覧を使用すると、重要度レベルまたは ETW レベルが指定された値より小さいイベントを除外できます。

既存のプロバイダーを構成する

既存のプロバイダーに関連付けられている設定を編集するには、一覧で選択し、[ プロバイダーの編集] ボタンを選択します。 名前、GUID、およびフィルター処理の設定を変更できます。

コンカレンシー ビジュアライザー レポートからマーカー データをフィルター処理する

特定のプロバイダーのデータを将来のトレースに表示しない場合は、削除するプロバイダーの横にあるチェック ボックスをオフにします。

Files

[ ファイル ] タブでは、トレースが収集されるたびにトレース ファイルを格納するディレクトリを指定できます。 コンカレンシー ビジュアライザーは、収集するトレースごとに 4 つのファイルを生成します。

  • カーネル モード イベント トレース ログ (ETL) ファイル (.kernel.etl*)

  • ユーザー モード イベント トレース ログ ファイル (.user.etl*)

  • コンカレンシー ビジュアライザー データ ファイル (.CVData*)

  • コンカレンシー ビジュアライザー トレース ファイル (.CVTrace*)

    2 つの ETL ファイルには生のトレース データが格納され、2 つのコンカレンシー ビジュアライザー ファイルには処理されたデータが格納されます。 生 ETL ファイルは、通常、トレースの処理後には使用されません。 [ 分析後にイベント トレース ログ (ETL) ファイルを削除 する] チェック ボックスをオンにすると、ディスクに格納されるトレース データの量が減ります。