Freigeben über


Hinzufügen von Benutzermarkierungen zur Profilerstellungszeitachse (C#, C++)

Mithilfe der Benutzermarkierungen können Sie benutzerdefinierte Ereignisse in den Profilerstellungstools von Visual Studio nachverfolgen, indem Sie Ihrem Code Benutzermarkierungsfunktionen hinzufügen. Die Benutzermarkierungen werden als visuelle Markierungen auf den Zeitachsendiagrammen angezeigt. Sie können Sie dazu verwenden, um ein einzelnes Ereignis oder Ereignisbereiche nachzuverfolgen. Sie können z. B. einen „Stop“- und „Start“-Ereignisbereich nachverfolgen.

Screenshot der Profilerstellung für Benutzermarkierungen.

Hinweis

Dieses Feature erfordert Visual Studio 2022, Version 17.11 Preview 3. Das Feature ist im Performance Profiler verfügbar und nicht beim Debuggen im Diagnosehub.

Installation und Einrichtung

Sie können den Support für die Funktion entweder mithilfe des NuGet-Pakets installieren, oder indem Sie die richtigen Quelldateien hinzufügen.

  • Installieren mithilfe des NuGet-Pakets (C#)

    Laden Sie das Paket Microsoft.VisualStudio.DiagnosticsHub.UserMarks herunter.

  • Installieren durch Hinzufügen von Quelldateien (C#, C++)

    Öffnen Sie, nachdem Sie Visual Studio installiert haben, den folgenden Ordner: [VS-Installationspfad]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.

    Fügen Sie Ihrem Projekt für C#-Code UserMarks.cs und UserMarksRange.cs hinzu.

    Fügen Sie Ihrem Projekt für C++-Code UserMarks.h hinzu.

Hinzufügen von Benutzermarkierungen (C#)

Fügen Sie der Projektbuildkonfiguration die folgende Präprozessordefinition hinzu: DIAGHUB_ENABLE_TRACE_SYSTEM

Hinzufügen der Definition in Visual Studio:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie Allgemeine >Symbole >für die bedingte Kompilierung erstellen aus.

  3. Fügen Sie in den benutzerdefinierten Symbolfeldern für Debug- und Releasebuilds DIAGHUB_ENABLE_TRACE_SYSTEM als Präprozessordefinition hinzu.

Fügen Sie das Objekt „Benutzermarkierungen“ hinzu und geben Sie es aus. Der folgende Code zeigt ein Beispiel für das Hinzufügen von Benutzermarkierungen.

using Microsoft.DiagnosticsHub;

// Create a user mark
var myUserMark = new UserMarks("MyMark");

// Emit the usermark
myUserMark.Emit("Event happened!");

// Emit statically
UserMarks.EmitMessage("Emitting just a message");

// Emitting a range
using (var myRange = new UserMarkRange("MyMethodRange"))
{
   // Your code here
}

Hinzufügen von Benutzermarkierungen (C++)

Um die native Benutzermarkierungen-API zu verwenden, fügen Sie Ihrem Projekt UserMarks.h hinzu, und fügen Sie den folgenden Code zu Ihrer App hinzu:

#define DIAGHUB_ENABLE_TRACE_SYSTEM
#include "UserMarks.h"
DIAGHUB_DECLARE_TRACE;

// Start the trace system
DIAGHUB_START_TRACE_SYSTEM();

// Initialize user marks
USERMARKS_INITIALIZE(L"User mark name");

// Initialize user mark range
USERMARKRANGE_INITIALIZE(L"Range name");

// Emit events
USERMARKS_EMIT(L"Message to emit with user mark");
USERMARKRANGE_START(L"Message to emit with range");
USERMARKRANGE_END();

// Stop the trace system
DIAGHUB_STOP_TRACE_SYSTEM();

Benutzermarkierungen anzeigen

  1. Öffnen Sie Ihr Projekt in Visual Studio und öffnen Sie den Performance Profiler (ALT + F2). Wählen Sie anschließend ein Tool aus, und klicken Sie auf die Schaltfläche Start.

  2. Stellen Sie sicher, dass der Benutzer den Code markiert, den Sie Ihrer App hinzugefügt haben.

    Die Benutzermarkierungen werden im Lineal oberhalb des Zeitachsendiagramms und in einer Tabelle mit Details zu den Zeitstempeln, dem zugehörigen Prozess und allen Nachrichten, die Sie ausgegeben haben, angezeigt.

    Die Benutzermarkierung wird in der Zeitachse als umgekehrtes Dreieck angezeigt.

  3. Wählen Sie im Bereich Zusammenfassung die Option Benutzermarkierungen anzeigen aus, um Details zu den Benutzermarkierungen anzuzeigen.

    Screenshot der Zeitachse.

    Details werden auf der Registerkarte „Benutzermarkierungen“ angezeigt.

    Screenshot der Benutzermarkierungen.

  4. Um die Details der Benutzermarkierungen auf der Zeitachse anzuzeigen, bewegen Sie den Mauszeiger im Lineal über die Markierungen.

    Screenshot, der zeigt, wie Sie mit dem Mauszeiger auf eine Benutzermarke zeigen.

  5. Um die Detailansicht zu filtern, wählen Sie im Zeitachsendiagramm einen Zeitbereich aus, oder klicken Sie mit der rechten Maustaste auf eine Zeile, und wählen Sie Start- und Endzeiten aus, um das Zeitachsendiagramm zu filtern.

    Sie können die Ansicht auch filtern, indem Sie Intervalle für Bereiche festlegen oder mehrere Benutzermarkierungen auswählen.

    Screenshot, der zeigt, wie Benutzermarkierungsintervalle gesetzt werden.