Freigeben über


Parallelitäts-Visualizer-SDK

Sie können Ihren Quellcode mit dem Concurrency Visualizer SDK instrumentieren, um zusätzliche Informationen im Concurrency Visualizer anzuzeigen. Sie können die zusätzlichen Daten Phasen und Ereignissen in Ihrem Code zuordnen. Diese zusätzlichen Visualisierungen werden als Markierungen bezeichnet. Für eine Einführung, siehe Einführung in das Concurrency Visualizer SDK.

Eigenschaften

Flags, Spans und Nachrichten weisen jeweils zwei Eigenschaften auf: Kategorie und Wichtigkeit. Im Dialogfeld "Erweiterte Einstellungen " können Sie diese Eigenschaften verwenden, um die angezeigten Markierungen zu filtern. Darüber hinaus wirken sich diese Eigenschaften auf die visuelle Darstellung von Markierungen aus. Beispielsweise wird die Größe von Flags verwendet, um die Wichtigkeit darzustellen. Darüber hinaus wird die Farbe verwendet, um die Kategorie anzugeben.

Grundlegende Nutzung

Die Concurrency Visualizer stellt einen Standardanbieter bereit, den Sie zum Generieren von Markern verwenden können. Der Anbieter ist bereits zusammen mit der Concurrency Visualizer registriert, und Sie müssen nichts anderes tun, damit die Markierungen in der Benutzeroberfläche angezeigt werden.

C# und Visual Basic

Verwenden Sie in C#, Visual Basic und anderem verwalteten Code den Standardanbieter, indem Sie Methoden in der Markers-Klasse aufrufen. Es macht vier Methoden zum Generieren von Markern verfügbar: WriteFlag, EnterSpan, WriteMessage und WriteAlert. Es gibt mehrere Überladungen für diese Funktionen, je nachdem, ob Sie Standardwerte für die Eigenschaften verwenden möchten. Die einfachste Überladung verwendet nur einen Zeichenfolgenparameter, der die Beschreibung des Ereignisses angibt. Die Beschreibung wird in den Concurrency Visualizer-Berichten angezeigt.

So fügen Sie sdk-Unterstützung zu einem C#- oder Visual Basic-Projekt hinzu
  1. Wählen Sie auf der Menüleiste "Analysieren", "Parallelitätsschnellansicht", "SDK zum Projekt hinzufügen" aus.

  2. Wählen Sie das Projekt aus, in dem Sie auf das SDK zugreifen möchten, und wählen Sie dann die Schaltfläche "SDK zu ausgewähltem Projekt hinzufügen " aus.

  3. Fügen Sie Ihrem Code eine Import- oder Using-Direktive hinzu.

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    

C++

Erstellen Sie in C++ ein marker_series Class-Objekt , und verwenden Sie es zum Aufrufen von Funktionen. Die marker_series Klasse macht drei Funktionen zum Generieren von Markern, der marker_series::write_flag-Methode, der marker_series::write_message-Methode und der marker_series::write_alert-Methode verfügbar.

So fügen Sie sdk-Unterstützung zu einem C++- oder C-Projekt hinzu
  1. Wählen Sie auf der Menüleiste "Analysieren", "Parallelitätsschnellansicht", "SDK zum Projekt hinzufügen" aus.

  2. Wählen Sie das Projekt aus, in dem Sie auf das SDK zugreifen möchten, und wählen Sie dann die Schaltfläche "SDK zu ausgewähltem Projekt hinzufügen " aus.

  3. Schließen Sie für C++ ein cvmarkersobj.h. Geben Sie für C ein cvmarkers.h.

  4. Fügen Sie Ihrem Code eine using-Anweisung hinzu.

    using namespace Concurrency::diagnostic;
    
  5. Erstellen Sie ein marker_series Objekt, und übergeben Sie es an den span Konstruktor.

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

Benutzerdefinierte Verwendung

Für erweiterte Szenarien macht das Concurrency Visualizer SDK mehr Kontrolle verfügbar. Zwei Hauptkonzepte sind mit komplexeren Szenarien verknüpft: Markeranbieter und Markierungsreihen. Markeranbieter sind unterschiedliche ETW-Anbieter (jede hat eine andere GUID). Markierungsreihen sind serielle Kanäle von Ereignissen, die von einem Anbieter generiert werden. Sie können sie verwenden, um die Ereignisse zu organisieren, die von einem Markeranbieter generiert werden.

So verwenden Sie einen neuen Markeranbieter in einem C#- oder Visual Basic-Projekt

  1. Erstellen Sie ein MarkerWriter-Objekt . Der Konstruktor akzeptiert eine GUID.

  2. Um den Anbieter zu registrieren, öffnen Sie das Dialogfeld "Erweiterte Einstellungen" des Konkurrenzvisualisierers. Wählen Sie die Registerkarte "Markierungen " und dann die Schaltfläche " Neuen Anbieter hinzufügen " aus. Geben Sie im Dialogfeld "Erweiterte Einstellungen " die GUID ein, die zum Erstellen des Anbieters und eine Beschreibung des Anbieters verwendet wurde.

So verwenden Sie einen neuen Markeranbieter in einem C++- oder C-Projekt

  1. Verwenden Sie die CvInitProvider Funktion, um eine PCV_PROVIDER zu initialisieren. Der Konstruktor akzeptiert eine GUID* und PCV_PROVIDER*.

  2. Um den Anbieter zu registrieren, öffnen Sie das Dialogfeld "Erweiterte Einstellungen ". Wählen Sie die Registerkarte "Markierungen " und dann die Schaltfläche " Neuen Anbieter hinzufügen " aus. Geben Sie in diesem Dialogfeld die GUID ein, die zum Erstellen des Anbieters und einer Beschreibung des Anbieters verwendet wurde.

So verwenden Sie eine Markierungsreihe in einem C#- oder Visual Basic-Projekt

  1. Um eine neue MarkerSeries zu verwenden, erstellen Sie sie zuerst mithilfe eines MarkerWriter-Objekts , und generieren Sie dann Markerereignisse direkt aus der neuen Datenreihe.

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

So verwenden Sie eine Markierungsreihe in einem C++-Projekt

  1. Erstellen eines marker_series-Objekts Sie können Ereignisse aus dieser neuen Reihe generieren.

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

So verwenden Sie eine Markierungsreihe in einem C-Projekt

  1. Verwenden Sie die CvCreateMarkerSeries Funktion, um eine PCV_MARKERSERIES zu erstellen.

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

Siehe auch

Title Description
C++-Bibliotheksreferenz Beschreibt die Concurrency Visualizer-API für C++.
C-Bibliotheksreferenz Beschreibt das Concurrency Visualizer API für die Programmiersprache C.
Instrumentierung Beschreibt die Concurrency Visualizer-API für verwalteten Code.
Concurrency-Visualizer Referenzinformationen für die Ansichten und Berichte von Profilerstellungsdatendateien, die mithilfe der Parallelitätsmethode generiert werden und Threadausführungsdaten enthalten.