Comment : instrumenter un service natif et collecter des données de temporisation détaillées en utilisant la ligne de commande du profileurHow to: Instrument a Native Service and Collect Detailed Timing Data by Using the Profiler Command Line

Cette rubrique explique comment utiliser les outils en ligne de commande des Outils de profilage Visual StudioVisual Studio pour instrumenter un service natif (C/C++) et pour collecter des données chronologiques détaillées.This topic describes how to use Visual StudioVisual Studio Profiling Tools command-line tools to instrument a native (C/C++) service and collect detailed timing data.

Note

Vous ne pouvez pas profiler un service avec la méthode d’instrumentation si le service ne peut pas être redémarré après le démarrage de l’ordinateur, comme un service qui démarre seulement quand le système d’exploitation démarre.You cannot profile a service with the instrumentation method if the service cannot be restarted after the computer starts, such a service that start only when the operating system starts.

Les outils en ligne de commande des outils de profilage se trouvent dans le sous-répertoire \Team Tools\Performance Tools du répertoire d’installation de Visual StudioVisual Studio.Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the Visual StudioVisual Studio installation directory. Les versions 64 bits et 32 bits des outils sont disponibles sur les ordinateurs 64 bits.On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. 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.To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to the command itself. Pour plus d’informations, consultez Spécification du chemin d’accès aux outils en ligne de commande.For more information, see Specifying the Path to Command Line Tools.

Pour collecter des données chronologiques détaillées à partir d’un service natif avec la méthode d’instrumentation, vous utilisez l’outil VSInstr.exe pour générer une version instrumentée du composant.To collect detailed timing data from a native service by using the instrumentation method, you use the VSInstr.exe tool to generate an instrumented version of the component. Vous remplacez ensuite la version non instrumentée du service par la version instrumentée, en vérifiant que le service est configuré pour démarrer manuellement.You then replace the non-instrumented version of the service with the instrumented version, making sure that the service is configured to start manually. Vous démarrez ensuite le profileur.You then start the profiler.

Quand le service est démarré, les données chronologiques sont collectées automatiquement dans un fichier de données.When the service is started, timing data is automatically collected to a data file. Vous pouvez suspendre et reprendre la collecte des données pendant la session de profilage.You can pause and resume data collection during the profiling session.

Pour mettre fin à une session de profilage, vous désactivez le service, puis vous arrêtez explicitement le profileur.To end a profiling session, you turn off the service and then explicitly shut down the profiler.

Démarrage de l’application avec le profileurStarting the Application with the Profiler

Pour démarrer le profilage d’un service natifTo start profiling a native service

  1. Ouvrez une fenêtre d’invite de commandes.Open a command prompt window.

  2. Utilisez l’outil VSInstr pour générer une version instrumentée du fichier binaire du service.Use the VSInstr tool to generate an instrumented version of the service binary.

  3. Remplacez le fichier binaire d’origine par la version instrumentée.Replace the original binary with the instrumented version. Dans le Gestionnaire de contrôle des services Windows, vérifiez que le type de démarrage du service est défini sur Manuel.In Windows Service Control Manager, make sure that the service Startup Type is set to Manual.

  4. Démarrez le profileur.Start the profiler. Type :Type:

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

    • L’option /start:trace initialise le profileur.The /start:trace option initializes the profiler.

    • L’option /output:OutputFile est nécessaire avec /start.The /output:OutputFile option is required with /start. OutputFile spécifie le nom et l’emplacement du fichier de données profilage (.vsp).OutputFile specifies the name and location of the profiling data (.vsp) file.

      Vous pouvez utiliser l’une des options suivantes avec l’option /start:trace.You can use any of the following options with the /start:trace option.

    Note

    Les options /user et /crosssession sont généralement nécessaires pour les applications ASP.NET.The /user and /crosssession options are usually required for ASP.NET applications.

    OptionOption DescriptionDescription
    /user :[Domain\]UserName/user :[Domain\]UserName Spécifie le nom de domaine et d’utilisateur du compte propriétaire du processus de travail ASP.NET.Specifies the domain and user name of the account that owns the ASP.NET worker process. Cette option est nécessaire si le processus s’exécute sous le compte d’un utilisateur autre que l’utilisateur connecté.This option is required if the process is running as a user other than the logged on user. Le propriétaire du processus est répertorié dans la colonne Nom d’utilisateur, sous l’onglet Processus du gestionnaire des tâches de Windows.The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.
    /crosssession/crosssession Active le profilage des processus dans d’autres sessions ouvertes.Enables profiling of processes in other logon sessions. Cette option est nécessaire si l’application ASP.NET s’exécute dans une autre session.This option is required if the ASP.NET application is running in a different session. L’ID de session est répertorié dans la colonne ID de session, sous l’onglet Processus du gestionnaire des tâches de Windows.The session id is listed in the Session ID column on the Processes tab of Windows Task Manager. /CS peut être spécifié comme abréviation de /crosssession./CS can be specified as an abbreviation for /crosssession.
    /waitstart[:Interval]/waitstart[:Interval] Spécifie le nombre de secondes à attendre que le profileur s’initialise avant qu’il retourne une erreur.Specifies the number of seconds to wait for the profiler to initialize before it returns an error. Si Interval n’est pas spécifié, le profileur attend indéfiniment.If Interval is not specified, the profiler waits indefinitely. Par défaut, /start retourne immédiatement.By default, /start returns immediately.
    /globaloff/globaloff Pour démarrer le profileur après avoir suspendu la collecte de données, ajoutez l’option /globaloff sur la ligne de commande /start.To start the profiler with data collection paused, add the /globaloff option to the /start command line. Utilisez /globalon pour reprendre le profilage.Use /globalon to resume profiling.
    /counter : Config/counter : Config Collecte des informations du compteur de performances du processeur spécifié dans la configuration. Les informations du compteur sont ajoutées aux données collectées à chaque événement de profilage.Collects information from the processor performance counter specified in Config. Counter information is added to the data collected at each profiling event.
    /wincounter : WinCounterPath/wincounter : WinCounterPath Spécifie le compteur de performances Windows dont les données doivent être collectées au cours du profilage.Specifies a Windows performance counter to be collected during profiling.
    /automark : Interval/automark : Interval À utiliser avec /wincounter uniquement.Use with /wincounter only. Spécifie le nombre de millisecondes écoulées entre les événements de collecte du compteur de performances Windows.Specifies the number of milliseconds between Windows performance counter collection events. La valeur par défaut est de 500 ms.Default is 500 ms.
    /events : Config/events : Config Spécifie l’événement du Suivi d’événements pour Windows (ETW) qui doit être collecté au cours du profilage.Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. Les événements ETW sont collectés dans un fichier séparé (.etl).ETW events are collected in a separate (.etl) file.
  5. Démarrez le service à partir du Gestionnaire de contrôle des services.Start the service from Service Control Manager.

Contrôle de la collection de donnéesControlling Data Collection

Quand le service s’exécute, vous pouvez utiliser les options de VSPerfCmd.exe pour démarrer et arrêter l’écriture des données dans le fichier de données du profileur.When the service is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. 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, comme le démarrage ou l’arrêt du service.Controlling data collection enables you to collect data for a specific part of program execution, such as starting or shutting down the service.

Pour démarrer et arrêter la collecte de donnéesTo start and stop data collection

  • Les paires d’options VSPerfCmd suivantes permettent de démarrer et d’arrêter la collecte des données.The following pairs of VSPerfCmd options start and stop data collection. Spécifiez chaque option sur une ligne de commande distincte.Specify each option on a separate command line. Vous pouvez activer et désactiver la collecte de données à plusieurs reprises.You can turn data collection on and off multiple times.

    OptionOption DescriptionDescription
    /globalon /globaloff/globalon /globaloff Démarre (/globalon) ou arrête (/globaloff) la collecte des données pour tous les processus.Starts (/globalon) or stops (/globaloff) data collection for all processes.
    /processon : PID /processoff : PID/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).Starts (/processon) or stops (/processoff) data collection for the process specified by the process ID (PID).
    /threadon : TID /threadoff : TID/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).Starts (/threadon) or stops (/threadoff) data collection for the thread specified by the thread ID (TID).

Fin d’une session de profilageEnding the Profiling Session

Pour mettre fin à une session de profilage, arrêtez le service qui exécute le composant instrumenté, puis appelez l’option VSPerfCmd/shutdown pour désactiver le profileur et fermer le fichier de données de profilage.To end a profiling session, stop the service that is running the instrumented component, and then call the VSPerfCmd/shutdown option to turn the profiler off and close the profiling data file.

Pour terminer une session de profilageTo end a profiling session

  1. Arrêtez le service à partir du Gestionnaire de contrôle des services.Stop the service from Service Control Manager.

  2. Fermez le profileur.Shut down the profiler. Type :Type:

    VSPerfCmd /shutdownVSPerfCmd /shutdown

  3. Remplacez le module instrumenté par l’original.Replace the instrumented module with the original. Si nécessaire, reconfigurez le type de démarrage du service.If necessary, reconfigure the Startup Type of the service.

Voir aussiSee Also

Profilage de services Profiling Services
Vues de données de la méthode d’instrumentationInstrumentation Method Data Views