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

同時実行ビジュアライザー SDK を使用してソース コードをインストルメント化し、同時実行ビジュアライザーに追加情報を表示することができます。You can instrument your source code by using the Concurrency Visualizer SDK to display additional information in the Concurrency Visualizer. コードでフェーズとイベントに追加データを関連付けることができます。You can associate the additional data with phases and events in your code. このような追加の視覚化機能のことをマーカーと呼びます。These additional visualizations are known as markers. 入門用のチュートリアルについては、「Introducing the Concurrency Visualizer SDK」 (同時実行ビジュアライザー SDK の概要) を参照してください。For an introductory walkthrough, see Introducing the Concurrency Visualizer SDK.

プロパティProperties

フラグ、スパン、およびメッセージにはそれぞれ、カテゴリおよび重要度という 2 つのプロパティがあります。Flags, spans, and messages each have two properties: category and importance. [詳細設定] ダイアログ ボックスで、これらのプロパティを使用して、表示されるマーカーのセットをフィルター処理することができます。In the Advanced Settings dialog box, you can use these properties to filter the set of markers that are displayed. また、これらのプロパティはマーカーの視覚表示に影響します。In addition, these properties affect the visual representation of markers. たとえば、フラグのサイズを使用して重要度を表します。For example, the size of flags is used to represent importance. また、色を使用してカテゴリを示します。In addition, color is used to indicate category.

基本的な使用方法Basic Usage

同時実行ビジュアライザーは、マーカーの生成に使用できる既定のプロバイダーを示します。The Concurrency Visualizer exposes a default provider that you can use to generate markers. プロバイダーは同時実行ビジュアライザーと共に既に登録されており、UI にマーカーを表示するためにユーザー側で行う必要がある操作はありません。The provider is already registered together with the Concurrency Visualizer and you don't have to do anything else to make the markers appear in the UI.

C# および Visual BasicC# and Visual Basic

C#、Visual Basic、および他のマネージ コードでは、<xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers> を呼び出して既定のプロバイダーを使います。In C#, Visual basic, and other managed code, use the default provider by calling <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers>. マーカー生成用の 4 つの関数、<xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.WriteFlag%2A>、<xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.EnterSpan%2A>、<xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.WriteMessage%2A>、<xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.WriteAlert%2A> が公開されます。It exposes four functions for generating markers: <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.WriteFlag%2A>, <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.EnterSpan%2A>, <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.WriteMessage%2A>, and <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.Markers.WriteAlert%2A>. プロパティで既定を使用するかどうかに応じて、これらの関数には複数のオーバーロードがあります。There are multiple overloads for these functions, depending on whether you want to use defaults for the properties. 最も単純なオーバーロードは、イベントの説明を指定する文字列パラメーターのみを受け取ります。The simplest overload takes only a string parameter that specifies the description of the event. 説明は同時実行ビジュアライザーのレポートに表示されます。The description is displayed in the Concurrency Visualizer reports.

C# または Visual Basic のプロジェクトに SDK のサポートを追加するにはTo add SDK support to a C# or Visual Basic project
  1. メニュー バーで、[分析][同時実行ビジュアライザー][プロジェクトへの SDK の追加] の順に選択します。On the menu bar, choose Analyze, Concurrency Visualizer, Add SDK to project.

  2. SDK にアクセスするプロジェクトを選択し、[選択したプロジェクトに SDK を追加] ボタンを選択します。Select the project in which you want to access the SDK and then choose the Add SDK to Selected Project button.

  3. imports ステートメントまたは using ステートメントをコードに追加します。Add an imports or using statement to your code.

    using Microsoft.ConcurrencyVisualizer.Instrumentation;  
    
    Imports Microsoft.ConcurrencyVisualizer.Instrumentation  
    

C++C++

C++ では、marker_series クラス オブジェクトを作成し、それを使用して関数を呼び出します。In C++, create a marker_series Class object and use it to call functions. marker_series クラスは、マーカーを生成するための 3 つの関数 (marker_series::write_flag メソッドmarker_series::write_message メソッド、および marker_series::write_alert メソッド) を示します。The marker_series class exposes three functions for generating markers, the marker_series::write_flag Method, the marker_series::write_message Method, and the marker_series::write_alert Method.

C++ または C のプロジェクトに SDK のサポートを追加するにはTo add SDK support to a C++ or C project
  1. メニュー バーで、[分析][同時実行ビジュアライザー][プロジェクトへの SDK の追加] の順に選択します。On the menu bar, choose Analyze, Concurrency Visualizer, Add SDK to project.

  2. SDK にアクセスするプロジェクトを選択し、[選択したプロジェクトに SDK を追加] ボタンを選択します。Select the project in which you want to access the SDK and then choose the Add SDK to Selected Project button.

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

  4. using ステートメントをコードに追加します。Add a using statement to your code.

    using namespace Concurrency::diagnostic;  
    
  5. marker_series オブジェクトを作成し、それを span コンストラクターに渡します。Create a marker_series object and pass it to the span constructor.

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

カスタムの使用方法Custom Usage

高度なシナリオの場合、同時実行ビジュアライザー SDK はより詳細に制御します。For advanced scenarios, the Concurrency Visualizer SDK exposes more control. より高度なシナリオには、2 つの主な概念 (マーカー プロバイダーとマーカー シリーズ) が関連付けられています。Two main concepts are associated with more advanced scenarios: marker providers and marker series. マーカー プロバイダーはさまざまな ETW プロバイダー (それぞれ異なる GUID を持つ) です。Marker providers are different ETW providers (each has a different GUID). マーカー シリーズは、1 つのプロバイダーによって生成されるイベントのシリアル チャネルです。Marker series are serial channels of events that are generated by one provider. マーカー プロバイダーによって生成されるイベントを整理する場合に使用できます。You can use them to organize the events that are generated by a marker provider.

C# または Visual Basic プロジェクトで新しいマーカー プロバイダーを使用するにはTo use a new marker provider in a C# or Visual Basic project

  1. <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.MarkerWriter> オブジェクトを作成します。Create a <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.MarkerWriter> object. コンストラクターは GUID を受け取ります。The constructor takes a GUID.

  2. プロバイダーを登録するには、同時実行ビジュアライザーの [詳細設定] ダイアログ ボックスを開きます。To register the provider, open the Concurrency Visualizer Advanced Settings dialog box. [マーカー] タブを選択してから、[新しいプロバイダーを追加します] ボタンを選択します。Select the Markers tab and then choose the Add New Provider button. [詳細設定] ダイアログ ボックスで、プロバイダーの作成に使用された GUID と、プロバイダーの説明を入力します。In the Advanced Settings dialog box, enter the GUID that was used to create the provider and a description of the provider.

C# または C プロジェクトで新しいマーカー プロバイダーを使用するにはTo use a new marker provider in a C++ or C project

  1. CvInitProvider 関数を使用して、PCV_PROVIDER を初期化します。Use the CvInitProvider function to initialize a PCV_PROVIDER. コンストラクターは GUID* と PCV_PROVIDER* を受け取ります。The constructor takes a GUID* and PCV_PROVIDER*.

  2. プロバイダーを登録するには、[詳細設定] ダイアログ ボックスを開きます。To register the provider, open the Advanced Settings dialog box. [マーカー] タブを選択してから、[新しいプロバイダーを追加します] ボタンを選択します。Select the Markers tab and then choose the Add New Provider button. ダイアログ ボックスに、プロバイダーの作成に使用された GUID と、プロバイダーの説明を入力します。In this dialog box, enter the GUID that was used to create the provider and a description of the provider.

C# または Visual Basic プロジェクトでマーカー シリーズを使用するにはTo use a marker series in a C# or Visual Basic project

  1. 新しい <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.MarkerSeries> を使うには、最初に <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.MarkerWriter> オブジェクトを使って作成した後、新しいシリーズから直接マーカー イベントを生成します。To use a new <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.MarkerSeries>, first create it by using a <xref:Microsoft.ConcurrencyVisualizer.Instrumentation.MarkerWriter> object, and then generate marker events directly from the new series.

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

C++ プロジェクトでマーカー シリーズを使用するにはTo use a marker series in a C++ project

  1. marker_series オブジェクトを作成します。Create a marker_series object. この新しいシリーズからイベントを生成することができます。You can generate events from this new series.

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

C プロジェクトでマーカー シリーズを使用するにはTo use a marker series in a C project

  1. CvCreateMarkerSeries 関数を使用して、PCV_MARKERSERIES を作成します。Use the CvCreateMarkerSeries function to create a PCV_MARKERSERIES.

    PCV_MARKERSERIES series;  
    CvCreatemarkerSeries(myProvider, _T("My Series"), &series);  
    CvWriteFlag(series, _T("Writing a flag"));  
    
タイトルTitle 説明Description
C++ ライブラリ リファレンスC++ Library Reference C++ の同時実行ビジュアライザー API について説明します。Describes the Concurrency Visualizer API for C++.
C ライブラリ リファレンスC Library Reference C の同時実行ビジュアライザー API について説明します。Describes the Concurrency Visualizer API for C.
<xref:Microsoft.ConcurrencyVisualizer.Instrumentation> マネージ コードの同時実行ビジュアライザー API について説明します。Describes the Concurrency Visualizer API for managed code.
同時実行ビジュアライザーConcurrency Visualizer 同時実行メソッドを使用して生成され、スレッド実行データを含む、プロファイル データ ファイルのビューとレポートに関するリファレンス情報。Reference information for the views and reports of profiling data files that are generated by using the concurrency method and that include thread execution data.