동시성 시각화 도우미 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

각 플래그, 범위 및 메시지에는 두 개의 속성인 범주와 중요도가 있습니다.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>. 그러면 표식을 생성하기 위한 네 가지 함수인 <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 클래스는 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. 표식 공급자 및 표식 계열의 두 가지 주요 개념은 보다 고급 시나리오와 연결됩니다.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). 표식 계열은 한 공급자에서 생성하는 일련의 이벤트 채널입니다.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.