Partager via


Ajouter des marques d'utilisateur à la ligne de temps de profilage (C#, C++)

Les marques d'utilisateur vous permettent de suivre des événements personnalisés à l'aide des outils de profilage de Visual Studio en ajoutant des fonctions de marque d'utilisateur dans votre code. Les marques d'utilisateur apparaissent sous forme de marques visuelles sur les graphiques de la ligne de temps. Vous pouvez suivre un seul événement ou une plage d'événements. Par exemple, vous pouvez suivre une plage d'événements "stop" et "start".

Capture d'écran montrant le profilage des marques d'utilisateur.

Remarque

Cette fonctionnalité nécessite Visual Studio 2022 version 17.11 Preview 3. La fonctionnalité est disponible dans le Performance Profiler et non lors du débogage dans le Hub de diagnostic.

Installation et configuration

Vous pouvez installer la prise en charge de la fonctionnalité à l'aide du package NuGet ou en ajoutant les fichiers sources corrects.

  • Installation à l'aide du package NuGet (C#)

    Téléchargez le package Microsoft.VisualStudio.DiagnosticsHub.UserMarks.

  • Installation par ajout de fichiers sources (C#, C++)

    Après avoir installé Visual Studio, ouvrez le dossier suivant : [Chemin d'installation de VS] \Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.

    Pour le code C#, ajoutez UserMarks.cs et UserMarksRange.cs à votre projet.

    Pour le code C++ natif, ajoutez UserMarks.h à votre projet.

Ajouter des marques d'utilisateur (C#)

Ajoutez la définition de préprocesseur suivante à la configuration de construction du projet : DIAGHUB_ENABLE_TRACE_SYSTEM.

Pour ajouter la définition dans Visual Studio :

  1. Cliquez avec le bouton droit de la souris sur le projet dans l'Explorateur de solutions, puis sélectionnez Propriétés.

  2. Sélectionnez Génération > Général > Symboles de compilation conditionnelle.

  3. Dans les champs de symboles personnalisés pour les versions Debug et Release, ajoutez DIAGHUB_ENABLE_TRACE_SYSTEM comme définition du préprocesseur.

Ajoutez l'objet user marks et émettez. Le code suivant montre un exemple d'ajout de marques d'utilisateur.

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
}

Ajouter des marques d'utilisateur (C++)

Pour utiliser l'API native des marques d'utilisateur, ajoutez UserMarks.h au projet et ajoutez le code suivant dans votre application :

#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();

Afficher les marques d'utilisateur

  1. Votre projet étant ouvert dans Visual Studio, ouvrez le Performance Profiler (Alt + F2), puis sélectionnez un outil et cliquez sur le bouton Start.

  2. Assurez-vous que le code des marques d'utilisateur que vous avez ajouté à votre application s'exécute.

    Les marques d'utilisateur s'affichent sur la règle au-dessus du graphique de la chronologie et dans un tableau contenant des détails sur les horodatages, le processus associé et les messages que vous avez émis.

    Sur la ligne de temps, la marque d'utilisateur apparaît sous la forme d'un triangle inversé.

  3. Dans le volet Résumé, sélectionnez Afficher les notes de l'utilisateur pour afficher les détails des notes de l'utilisateur.

    Capture d'écran montrant la chronologie.

    Les détails apparaissent dans l'onglet Marques d'utilisateur.

    Capture d'écran montrant les marques d'utilisateur.

  4. Pour voir les détails de la marque d'utilisateur dans la chronologie, survolez les marques dans la règle.

    Capture d'écran montrant le survol d'une marque d'utilisateur.

  5. Pour filtrer la vue détaillée, sélectionnez une plage de temps dans le graphique de la chronologie, ou cliquez avec le bouton droit de la souris sur une ligne et sélectionnez les heures de début et de fin pour filtrer le graphique de la chronologie.

    Vous pouvez également filtrer la vue en définissant des intervalles sur les plages ou en sélectionnant plusieurs marques d'utilisateur.

    Capture d'écran montrant la définition d'un intervalle de marque d'utilisateur.