Guide pratique pour attacher le profileur à un service natif et collecter des statistiques d’application en utilisant la ligne de commandeHow to: Attach the profiler to a native service to collect application statistics by using the command line

Cet article explique comment utiliser les outils en ligne de commande des Outils de profilage Visual StudioVisual Studio pour attacher le profileur à un service natif et collecter des statistiques de performances à l’aide de la méthode d’échantillonnage.This article describes how to use the Visual StudioVisual Studio Profiling Tools command-line tools to attach the profiler to a native service and collect performance statistics by using the sampling method.

Note

Les fonctionnalités de sécurité renforcée de Windows 8 et Windows Server 2012 ont imposé des changements importants dans la façon dont le profileur Visual Studio collecte les données sur ces plateformes.Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Les applications UWP nécessitent aussi de nouvelles techniques de collecte.UWP apps also require new collection techniques. Consultez Outils d’analyse des performances sur les applications Windows 8 et Windows Server 2012.See Performance Tools on Windows 8 and Windows Server 2012 applications.

Note

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 bien l’ajouter à la commande elle-même.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écifier le chemin des outils en ligne de commande.For more information, see Specify the path to command line tools.

Lorsque le profileur est attaché au service, vous pouvez suspendre et reprendre la collecte de données.While the profiler is attached to the service, you can pause and resume data collection.

Pour mettre fin à une session de profilage, vous devez détacher le profileur du service et l’arrêter explicitement.To end a profiling session, the profiler must be detached from the service and the profiler must be explicitly shut down.

Démarrer l’application avec le profileurStart the application with the profiler

Pour attacher le profileur à un service natif, utilisez les options /start et /attach de VSPerfCmd.exe pour initialiser le profileur et l’attacher à l’application cible.To attach the profiler to a native service, you use the VSPerfCmd.exe/start and /attach options to initialize the profiler and attach it to the target application. Vous pouvez spécifier /start et /attach et leurs options respectives sur une même ligne de commande.You can specify /start and /attach and their respective options on a single command line. Vous pouvez également ajouter l’option /globaloff pour suspendre la collecte des données au démarrage de l’application cible.You can also add the /globaloff option to pause data collection at the start of the target application. Vous pouvez ensuite utiliser /globalon pour commencer à collecter les données.You can then use /globalon to begin collecting data.

Pour attacher le profileur à un service natifTo attach the profiler to a native service

  1. Si nécessaire, démarrez le service.If necessary, start the service.

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

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

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

    • L’option /start:sample initialise le profileur.The /start:sample 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 de 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:sample.You can use any of the following options with the /start:sample option.

    Note

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

    OptionOption DescriptionDescription
    /user :[Domain\]UserName/user :[Domain\]UserName Spécifie le nom de domaine et d’utilisateur du compte propriétaire du processus profilé.Specifies the domain and user name of the account that owns the profiled process. Cette option n’est nécessaire que si le processus s’exécute sous le compte d’un utilisateur autre que celui connecté.This option is required only 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.Enables profiling of processes in other sessions. Cette option est nécessaire si l’application s’exécute dans une autre session.This option is required if the 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.
    /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.
  4. Attachez le profileur au service.Attach the profiler to the service. Type :Type:

    VSPerfCmd /attach: PID [Sample Event]VSPerfCmd /attach: PID [Sample Event]

    PID spécifie l’ID de processus de l’application cible.PID specifies the process ID of the target application. Vous pouvez afficher les ID de processus de tous les processus en cours d’exécution dans le gestionnaire des tâches de Windows.You can view the process IDs of all running processes in Windows Task Manager.

    Par défaut, les données de performances sont échantillonnées tous les 10 000 000 cycles d’horloge ininterrompus du processeur.By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. Ceci correspond environ à une fois toutes les 10 secondes sur un processeur à 1 GHz.This is approximately once every 10 seconds on a 1GH processor. Vous pouvez spécifier l’une des options suivantes pour modifier l’intervalle de cycle d’horloge ou pour spécifier un autre événement d’échantillonnage.You can specify one of the following options to change the clock cycle interval or to specify a different sampling event.

    Événement d’échantillonnageSample Event DescriptionDescription
    /timer : Interval/timer : Interval Remplace l’intervalle d’échantillonnage par le nombre de cycles d’horloge sans interruption spécifié par Interval.Changes the sampling interval to the number of non-halted clock cycles specified by Interval.
    /pf[:Interval]/pf[:Interval] Remplace l’événement d’échantillonnage par les erreurs de page.Changes the sampling event to page faults. Si Interval est spécifié, définit le nombre d’erreurs de page entre chaque échantillon.If Interval is specified, sets the number of page faults between samples. La valeur par défaut est 10.Default is 10.
    /sys [:Interval]/sys [:Interval] Remplace l’événement d’échantillonnage par des appels système du processus vers le noyau du système d’exploitation (syscalls).Changes the sampling event to system calls from the process to the operating system kernel (syscalls). Si Interval est spécifié, définit le nombre d’appels entre chaque échantillon.If Interval is specified, sets the number of calls between samples. La valeur par défaut est 10.Default is 10.
    /counter : Config/counter : Config Remplace l’événement et l’intervalle d’échantillonnage par le compteur de performances du processeur et l’intervalle spécifiés dans Config.Changes the sampling event and interval to the processor performance counter and interval specified in Config.

Contrôler la collecte des donnéesControl data collection

Pendant l’exécution de l’application cible, 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.While the target application 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, telle que le démarrage ou l’arrêt de l’application.Controlling data collection enables you to collect data for a specific part of program execution, such as starting or shutting down the application.

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).
    /attach: {PID|ProcName} /detach[:{PID|ProcName}]/attach: {PID|ProcName} /detach[:{PID|ProcName}] /attach commence à collecter des données pour le processus spécifié par l’ID ou le nom de processus./attach starts to collect data for the process specified by the process ID or process name. /detach arrête la collecte des données pour le processus spécifié, ou pour tous les processus si aucun processus n’est spécifié./detach stops data collection for the specified process, or for all processes if a process is not specified.

Arrêter la session de profilageEnd the profiling session

Pour mettre fin à une session de profilage, vous devez détacher le profileur du service et l’arrêter explicitement.To end a profiling session, the profiler must be detached from the service and then explicitly shut down. Vous pouvez arrêter la collecte des données d’un service natif profilé avec la méthode d’accès concurrentiel en arrêtant le service ou en appelant l’option VSPerfCmd /detach.You can detach native service that is being profiled with the sampling method by stopping the service or by calling the VSPerfCmd /detach option. Vous appelez ensuite l’option VSPerfCmd /shutdown pour désactiver le profileur et fermer le fichier de données de profilage.You 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. Effectuez une des opérations suivantes pour détacher le profileur de l’application cible :Do one of the following to detach the profiler from the target application:

    • Arrêtez le service.Stop the service.

      - ou --or-

    • Tapez VSPerfCmd /detachType VSPerfCmd /detach

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

    VSPerfCmd /shutdownVSPerfCmd /shutdown

Voir aussiSee also

Profiler des services Profile services
Vues de données de la méthode d’échantillonnageSampling method data views