コンカレンシー ビジュアライザー SDK

コンカレンシー ビジュアライザー SDK を使用してソース コードをインストルメント化し、コンカレンシー ビジュアライザーに追加情報を表示することができます。 コードでフェーズとイベントに追加データを関連付けることができます。 このような追加の視覚化機能のことをマーカーと呼びます。 入門用のチュートリアルについては、「Introducing the Concurrency Visualizer SDK」(コンカレンシー ビジュアライザー SDK の概要) を参照してください。

Properties

フラグ、スパン、およびメッセージにはそれぞれ、カテゴリおよび重要度という 2 つのプロパティがあります。 [詳細設定] ダイアログ ボックスで、これらのプロパティを使用して、表示されるマーカーのセットをフィルター処理することができます。 また、これらのプロパティはマーカーの視覚表示に影響します。 たとえば、フラグのサイズを使用して重要度を表します。 また、色を使用してカテゴリを示します。

基本的な使用

コンカレンシー ビジュアライザーは、マーカーの生成に使用できる既定のプロバイダーを示します。 プロバイダーはコンカレンシー ビジュアライザーと共に既に登録されており、UI にマーカーを表示するためにユーザー側で行う必要がある操作はありません。

C# と Visual Basic

C#、Visual Basic、および他のマネージド コードでは、Markers クラスのメソッド を呼び出して既定のプロバイダーを使います。 マーカーを生成するための 4 つのメソッド (WriteFlagEnterSpan WriteMessageWriteAlert) が公開されています。 プロパティで既定を使用するかどうかに応じて、これらの関数には複数のオーバーロードがあります。 最も単純なオーバーロードは、イベントの説明を指定する文字列パラメーターのみを受け取ります。 説明はコンカレンシー ビジュアライザーのレポートに表示されます。

C# または Visual Basic のプロジェクトに SDK のサポートを追加するには
  1. メニュー バーで、[分析][コンカレンシー ビジュアライザー][プロジェクトへの SDK の追加] の順に選択します。

  2. SDK にアクセスするプロジェクトを選択し、[選択したプロジェクトに SDK を追加] ボタンを選択します。

  3. imports ステートメントまたは using ステートメントをコードに追加します。

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    

C++

C++ では、marker_series クラス オブジェクトを作成し、それを使用して関数を呼び出します。 marker_series クラスは、マーカーを生成するための 3 つの関数 (marker_series::write_flag メソッドmarker_series::write_message メソッド、および marker_series::write_alert メソッド) を示します。

C++ または C のプロジェクトに SDK のサポートを追加するには
  1. メニュー バーで、[分析][コンカレンシー ビジュアライザー][プロジェクトへの SDK の追加] の順に選択します。

  2. SDK にアクセスするプロジェクトを選択し、[選択したプロジェクトに SDK を追加] ボタンを選択します。

  3. C++ の場合は、cvmarkersobj.h を含めます。 C の場合は、cvmarkers.h を含めます。

  4. using ステートメントをコードに追加します。

    using namespace Concurrency::diagnostic;
    
  5. marker_series オブジェクトを作成し、それを span コンストラクターに渡します。

    
    marker_series mySeries;
    span s(mySeries, _T("Span description"));
    
    

カスタムの使用方法

高度なシナリオの場合、コンカレンシー ビジュアライザー SDK はより詳細に制御します。 より高度なシナリオには、2 つの主な概念 (マーカー プロバイダーとマーカー シリーズ) が関連付けられています。 マーカー プロバイダーはさまざまな ETW プロバイダー (それぞれ異なる GUID を持つ) です。 マーカー シリーズは、1 つのプロバイダーによって生成されるイベントのシリアル チャネルです。 マーカー プロバイダーによって生成されるイベントを整理する場合に使用できます。

C# または Visual Basic プロジェクトで新しいマーカー プロバイダーを使用するには

  1. MarkerWriter オブジェクトを作成します。 コンストラクターは GUID を受け取ります。

  2. プロバイダーを登録するには、コンカレンシー ビジュアライザーの [詳細設定] ダイアログ ボックスを開きます。 [マーカー] タブを選択してから、[新しいプロバイダーを追加します] ボタンを選択します。 [詳細設定] ダイアログ ボックスで、プロバイダーの作成に使用された GUID と、プロバイダーの説明を入力します。

C# または C プロジェクトで新しいマーカー プロバイダーを使用するには

  1. CvInitProvider 関数を使用して、PCV_PROVIDER を初期化します。 コンストラクターは GUID* と PCV_PROVIDER* を受け取ります。

  2. プロバイダーを登録するには、[詳細設定] ダイアログ ボックスを開きます。 [マーカー] タブを選択してから、[新しいプロバイダーを追加します] ボタンを選択します。 ダイアログ ボックスに、プロバイダーの作成に使用された GUID と、プロバイダーの説明を入力します。

C# または Visual Basic プロジェクトでマーカー シリーズを使用するには

  1. 新しい MarkerSeries を使うには、最初に MarkerWriter オブジェクトを使って作成した後、新しいシリーズから直接マーカー イベントを生成します。

    MarkerSeries series1 = myMarkerWriter.CreateMarkerSeries("Series 1");
    series1.WriteFlag("My flag");
    

C++ プロジェクトでマーカー シリーズを使用するには

  1. marker_series オブジェクトを作成します。 この新しいシリーズからイベントを生成することができます。

    marker_series series;
    series.write_flag(_T("Hello world!"));
    

C プロジェクトでマーカー シリーズを使用するには

  1. CvCreateMarkerSeries 関数を使用して、PCV_MARKERSERIES を作成します。

    PCV_MARKERSERIES series;
    CvCreatemarkerSeries(myProvider, _T("My Series"), &series);
    CvWriteFlag(series, _T("Writing a flag"));
    

関連項目

Title 説明
C++ ライブラリ リファレンス C++ のコンカレンシー ビジュアライザー API について説明します。
C ライブラリ リファレンス C のコンカレンシー ビジュアライザー API について説明します。
インストルメンテーション マネージド コードのコンカレンシー ビジュアライザー API について説明します。
コンカレンシー ビジュアライザー コンカレンシー メソッドを使用して生成され、スレッド実行データを含む、プロファイリング データ ファイルのビューとレポートに関するリファレンス情報。