同時実行ビジュアライザー SDK

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

プロパティ

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

基本的な使用方法

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

C# および Visual Basic

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

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

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

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

    using Microsoft.ConcurrencyVisualizer.Instrumentation;  
    
    Imports 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");  
    
    Dim series1 As New 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"));  
    
タイトル 説明
C++ ライブラリ リファレンス C++ の同時実行ビジュアライザー API について説明します。
C ライブラリ リファレンス C の同時実行ビジュアライザー API について説明します。
Microsoft.ConcurrencyVisualizer.Instrumentation マネージ コードの同時実行ビジュアライザー API について説明します。
同時実行ビジュアライザー 同時実行メソッドを使用して生成され、スレッド実行データを含む、プロファイル データ ファイルのビューとレポートに関するリファレンス情報。