Share via


Instrumenter un composant autonome natif 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 en ligne de commande Visual Studio pour instrumenter un composant natif tel qu’un fichier .exe ou.dll en C++, et comment collecter des données temporelles détaillées.

Pour collecter des données chronologiques détaillées à partir d’un composant avec la méthode d’instrumentation, vous utilisez l’outil VSInstr.exe pour générer une version instrumentée du composant. Vous démarrez ensuite le profileur. 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.

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.

Pour mettre fin à une session de profilage, fermez l’application cible, puis arrêtez explicitement le profileur.

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.

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

  3. 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 ou plusieurs 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 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.
  4. Démarrez l’application cible de manière habituelle.

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 à 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]../profiling/threadon-and-threadoff.md) :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é, puis appelez l’option /shutdown de VSPerfCmd pour désactiver le profileur et fermer le fichier de données de profilage.

Pour mettre fin à une session de profilage :

  1. Fermez l’application cible.

  2. Fermez le profileur. Tapez :

    VSPerfCmd /shutdown