Guide pratique pour attacher le profileur à un service natif et collecter des données de concurrence en utilisant la ligne de commandeHow to: Attach the profiler to a native service to collect concurrency data 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 (C/C++) et collecter des données de concurrence sur les processus et les threads à 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 (C/C++) service and collect process and thread concurrency data 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 Studio.Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the Visual 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 le profileur dans une fenêtre d’invite de commandes, 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 at a command prompt, you must add the tools path to the PATH environment variable of the Command Prompt window or 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 permettre l’arrêt d’une session de profilage, le profileur ne doit plus être attaché au service. Profiler doit être arrêté explicitement.To end a profiling session, the profiler must no longer be attached to the service, and the Profiler must be explicitly shut down.

Attacher le profileurAttach the profiler

Pour attacher le profileur à un service natif, utilisez les options VSPerfCmd/start et /attach pour initialiser le profileur et l’attacher à l’application cible.To attach the profiler to a native service, you use the VSPerfCmd/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. Ensuite, utilisez /globalon pour commencer à collecter les données.You then use /globalon to begin to collect data.

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

  1. Si le service n’est pas en cours d’exécution, démarrez-le.If the service is not running, start the service.

  2. Démarrez le profileur en tapant ce qui suit à l’invite de commandes :Start the profiler by typing the following at a command prompt:

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

    • 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 the location of the profiling data (.vsp) file.

      Vous pouvez utiliser l’une des options du tableau suivant avec l’option /start.You can use any option in the following table with the /start option.

    Note

    La plupart des services nécessitent les options /user et /crosssession.Most services require the /user and /crosssession option.

    OptionOption DescriptionDescription
    /user :[Domain\]UserName/user :[Domain\]UserName Spécifie les noms de domaine et d’utilisateur facultatifs du compte qui doit obtenir l’accès au profileur.Specifies the optional domain and user name of the account to be granted access to the profiler.
    /crosssession/crosssession Active le profilage des processus dans d’autres sessions ouvertes.Enables profiling of processes in other logon sessions.
    /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.The default value is 500.
    /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.
  3. Attachez le profileur au service en tapant la commande suivante dans la fenêtre d’invite de commandes :Attach the profiler to the service by typing the following command at a command prompt:

    VSPerfCmd /attach: PIDVSPerfCmd /attach: PID

    PID spécifie l’ID ou le nom de processus de l’application cible.PID specifies the process ID or process name 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.

Contrôler la collecte des donnéesControl data collection

Pendant l’exécution de l’application cible, vous pouvez contrôler la collecte de données en démarrant et en arrêtant l’écriture des données dans le fichier avec les options VSPerfCmd.exe.While the target application is running, you can control data collection by starting and stopping the writing of data to the file with VSPerfCmd.exe options. 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.By controlling data collection, you can collect data for a specific part of program execution, such as the starting or shutting down of the application.

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

  • Les paires d’options du tableau suivant permettent de démarrer et d’arrêter la collecte des données.The pairs of options in the following table 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 that the process ID (PID) specifies.
    /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 de processus (PID) ou le nom de processus (ProcName)./attach starts to collect data for the process that the process ID (PID) or process name (ProcName) specifies. /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 no process is specified.

Arrêter la session de profilageEnd the profiling session

Pour mettre fin à une session de profilage, le profileur ne doit pas être en train de collecter des données.To end a profiling session, the profiler must not be collecting data. 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 stop collecting data from a native service that is being profiled with the concurrency method by stopping the service or by invoking the VSPerfCmd /detach option. Vous devez alors appeler l’option VSPerfCmd /shutdown pour désactiver le profileur et fermer le fichier de données de profilage.You then invoke the VSPerfCmd /shutdown option to turn off the profiler and close the profiling data file.

Pour terminer une session de profilageTo end a profiling session

  1. Détachez le profileur de l’application cible en arrêtant le service ou en tapant la commande suivante dans la fenêtre d’invite de commandes :Detach the profiler from the target application by stopping the service or by typing the following command at a command prompt:

    Tapez VSPerfCmd /detachType VSPerfCmd /detach

  2. Fermez le profileur en tapant ce qui suit à l’invite de commandes :Shut down the profiler by typing the following command at a command prompt:

    VSPerfCmd /shutdownVSPerfCmd /shutdown