Dela via


Samtidighet Visualiserare SDK

Du kan instrumentera källkoden med hjälp av Concurrency Visualizer SDK för att visa ytterligare information i Concurrency Visualizer. Du kan associera ytterligare data med faser och händelser i koden. Dessa ytterligare visualiseringar kallas markörer. En introduktionsgenomgång finns i Introduktion till Concurrency Visualizer SDK.

Egenskaper

Flaggor, intervall och meddelanden har båda två egenskaper: kategori och prioritet. I dialogrutan Avancerade inställningar kan du använda de här egenskaperna för att filtrera den uppsättning markörer som visas. Dessutom påverkar dessa egenskaper den visuella representationen av markörer. Storleken på flaggor används till exempel för att representera betydelse. Dessutom används färg för att ange kategori.

Grundläggande användning

Concurrency Visualizer exponerar en standardprovider som du kan använda för att generera markörer. Providern är redan registrerad tillsammans med Concurrency Visualizer och du behöver inte göra något annat för att markörer ska visas i användargränssnittet.

C# och Visual Basic

I C#, Visual Basic och annan hanterad kod använder du standardprovidern genom att anropa metoder i klassen Markörer . Den exponerar fyra metoder för att generera markörer: WriteFlag, EnterSpan, WriteMessage och WriteAlert. Det finns flera överlagringar för dessa funktioner, beroende på om du vill använda standardvärden för egenskaperna. Den enklaste överlagringen tar bara en strängparameter som anger beskrivningen av händelsen. Beskrivningen visas i concurrency Visualizer-rapporterna.

Lägga till SDK-stöd i ett C#- eller Visual Basic-projekt
  1. På menyraden väljer du Analysera, Samtidighetsvisualiserare, Lägg till SDK i projektet.

  2. Välj det projekt där du vill komma åt SDK:et och välj sedan knappen Lägg till SDK i markerat projekt .

  3. Lägg till en import eller användningssats i koden.

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    

C++

I C++skapar du ett marker_series class-objekt och använder det för att anropa funktioner. Klassen marker_series exponerar tre funktioner för att generera markörer, metoden marker_series::write_flag, metoden marker_series::write_message och metoden marker_series::write_alert.

Så här lägger du till SDK-stöd i ett C++ eller C-projekt
  1. På menyraden väljer du Analysera, Samtidighetsvisualiserare, Lägg till SDK i projektet.

  2. Välj det projekt där du vill komma åt SDK:et och välj sedan knappen Lägg till SDK i markerat projekt .

  3. För C++, inkludera cvmarkersobj.h. För C inkluderar du cvmarkers.h.

  4. Lägg till en using-instruktion i koden.

    using namespace Concurrency::diagnostic;
    
  5. Skapa ett marker_series objekt och skicka det till span konstruktorn.

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

Anpassad användning

För avancerade scenarier exponerar Concurrency Visualizer SDK mer kontroll. Två huvudbegrepp är associerade med mer avancerade scenarier: markörtillhandahållare och markörserier. Markörprovidrar är olika ETW-leverantörer (var och en har olika GUID). Markörserier är seriekanaler för händelser som genereras av en provider. Du kan använda dem för att organisera de händelser som genereras av en markörprovider.

Så här använder du en ny markörprovider i ett C#- eller Visual Basic-projekt

  1. Skapa ett MarkerWriter-objekt . Konstruktorn tar ett GUID.

  2. Om du vill registrera providern öppnar du dialogrutan Avancerade inställningar för Samtidighetsvisualiserare. Välj fliken Markörer och välj sedan knappen Lägg till ny provider . I dialogrutan Avancerade inställningar anger du det GUID som användes för att skapa providern och en beskrivning av providern.

Så här använder du en ny markörprovider i ett C++ eller C-projekt

  1. CvInitProvider Använd funktionen för att initiera en PCV_PROVIDER. Konstruktorn tar en GUID* och en PCV_PROVIDER*.

  2. Om du vill registrera providern öppnar du dialogrutan Avancerade inställningar . Välj fliken Markörer och välj sedan knappen Lägg till ny provider . I den här dialogrutan anger du det GUID som användes för att skapa providern och en beskrivning av providern.

Så här använder du en markörserie i ett C#- eller Visual Basic-projekt

  1. Om du vill använda en ny MarkerSeries skapar du den först med hjälp av ett MarkerWriter-objekt och genererar sedan markörhändelser direkt från den nya serien.

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

Så här använder du en markörserie i ett C++-projekt

  1. Skapa ett marker_series objekt. Du kan generera händelser från den här nya serien.

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

Så här använder du en markörserie i ett C-projekt

  1. Använd CvCreateMarkerSeries-funktionen för att skapa en PCV_MARKERSERIES.

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

Se även

Titel Description
Referens för C++-bibliotek API:et Concurrency Visualizer för C++ beskrivs.
Referens för C-bibliotek Beskriver Concurrency Visualizer API:et för C.
Instrumentation Beskriver API:et Concurrency Visualizer för hanterad kod.
Samtidighetsvisualiserare Referensinformation för vyer och rapporter för profilering av datafiler som genereras med hjälp av samtidighetsmetoden och som innehåller trådkörningsdata.