Partager via


Instrumenter un composant .NET Framework autonome et collecter les données de temporisation avec le profileur à partir de la ligne de commande

Cette rubrique explique comment utiliser les outils de profilage de ligne de commande Visual Studio pour instrumenter un composant .NET Framework tel qu’un fichier .exe ou .dll et collecter des données de temporisation détaillées.

Note

Pour .NET Core et .NET 5+, consultez Mesurer les performances d’une application à partir de la ligne de commande pour obtenir des scénarios d’instrumentation de ligne de commande. VSInstr n’est pas pris en charge pour des fichiers binaires .NET Core et .NET 5+. À compter de la version 17.6 de Visual Studio 2022, nous vous recommandons d’utiliser la fonction VSDiagnostics.exe pour des scénarios .NET Framework, car elle fournit une instrumentation dynamique.

Pour collecter les données de temporisation détaillées d’un .NET Framework à l’aide de la méthode d’instrumentation, utilisez l’outil VSInstr.exe afin de générer une version instrumentée du composant et l’outil VSPerfCLREnv.cmd pour initialiser des variables d’environnement de profilage. Vous démarrez ensuite le profileur.

Le chemin d'accès aux outils de profilage est le suivant : Microsoft Visual Studio\version\Enterprise\Team Tools\DiagnosticsHub\Collector.

Remarque

Pour utiliser les outils en ligne de commande du profileur, vous devez ajouter le chemin des outils à la variable d’environnement PATH dans la fenêtre d’invite de commandes, ou l’ajouter à la commande.

Quand le composant instrumenté est exécuté, les données chronologiques sont collectées automatiquement dans un fichier de données. Vous pouvez suspendre et reprendre la collecte des données pendant la session de profilage.

Pour mettre fin à une session de profilage, fermez l’application cible et arrêtez explicitement le profileur. Dans la plupart des cas, nous vous recommandons de désactiver les variables d’environnement de profilage à la fin d’une session.

Démarrer la session de profilage

Pour lancer le profilage suivant la méthode d’instrumentation, procédez comme suit :

  1. Ouvrez une fenêtre d’invite de commandes. Si nécessaire, ajoutez le répertoire des outils de Profiler à votre variable d’environnement PATH. Le chemin n’est pas ajouté au moment de l’installation.

  2. Utilisez l’outil VSInstr pour générer une version instrumentée de l’application cible.

  3. Initialisez les variables d’environnement de profilage .NET Framework. Tapez :

    VSPerfClrEnv /traceon

  4. Démarrez le profileur. Tapez :

    VSPerfCmd /start:trace /output:OutputFile [Options]

    • L’option /start:trace initialise le profileur.

    • L’option /output:OutputFile est nécessaire avec /start. OutputFile spécifie le nom et l’emplacement du fichier de données profilage (.vsp).

      Vous pouvez utiliser une des options suivantes avec l’option /start:trace.

    Option Description
    /user:[Domain\]UserName Spécifie le nom de domaine et d’utilisateur du compte propriétaire du processus profilé. Cette option n’est nécessaire que si le processus s’exécute sous le compte d’un utilisateur autre que celui connecté. Le propriétaire de processus est listé dans la colonne Nom d’utilisateur, sous l’onglet Processus du Gestionnaire des tâches Windows.
    /crosssession Active le profilage des processus dans d’autres sessions. Cette option est nécessaire si l’application ASP.NET s’exécute dans une autre session. L’identificateur de session est répertorié dans la colonne ID de session, sous l’onglet Processus du Gestionnaire des tâches de Windows. /CS peut être spécifié comme abréviation de /crosssession.
    /globaloff Démarre le profileur avec la collecte de données suspendue. Utilisez /globalon pour reprendre le profilage.
    /counter:Config Collecte des informations à partir du compteur de performances du processeur spécifié dans Config. Les informations du compteur sont ajoutées aux données collectées à chaque événement de profilage.
    /wincounter:WinCounterPath Spécifie le compteur de performances Windows dont les données doivent être collectées au cours du profilage.
    /automark:Interval À utiliser avec /wincounter uniquement. Spécifie le nombre de millisecondes écoulées entre les événements de collecte du compteur de performances Windows. La valeur par défaut est de 500 ms.
    /events:Config Spécifie l’événement du Suivi d’événements pour Windows (ETW) qui doit être collecté au cours du profilage. Les événements ETW sont collectés dans un fichier (.etl) distinct.
  5. Démarrez l’application cible dans la fenêtre d’invite de commandes.

Contrôler la collecte des données

Pendant l’exécution de l’application cible, vous pouvez contrôler la collecte des données en démarrant et en arrêtant l’écriture des données dans le fichier de données du profileur à l’aide des options de VSPerfCmd.exe. Le fait de pouvoir contrôler la collecte vous permet de collecter des données pour une phase spécifique de l’exécution du programme, telle que le démarrage ou l’arrêt de l’application.

Pour lancer et arrêter la collecte de données, procédez comme suit :

  • Les paires d’options suivantes permettent de démarrer et d’arrêter la collecte des données. Spécifiez chaque option sur une ligne de commande distincte. Vous pouvez activer et désactiver la collecte de données à plusieurs reprises.

    Option Description
    /globalon /globaloff Démarre (/globalon) ou arrête (/globaloff) la collecte des données pour tous les processus.
    /processon:PID/processoff:PID Démarre (/processon) ou arrête (/processoff) la collecte des données pour le processus spécifié par l’ID de processus (PID).
    /threadon:TID/threadoff:TID Démarre (/threadon) ou arrête (/threadoff) la collecte des données pour le thread spécifié par l’ID de thread (TID).

Arrêter la session de profilage

Pour mettre fin à une session de profilage, fermez l’application qui exécute le composant instrumenté. Appelez l’option VSPerfCmd/shutdown pour désactiver le profileur et fermer le fichier de données de profilage. La commande VSPerfClrEnv /off efface les variables d’environnement de profilage.

Pour mettre fin à une session de profilage, procédez comme suit :

  1. Fermez l’application cible.

  2. Fermez le profileur. Tapez :

    VSPerfCmd /shutdown

  3. (Facultatif) Effacez les variables d’environnement de profilage. Tapez :

    VSPerfClrEnv /off