Comment : attacher le profileur à un service .NET pour collecter des statistiques d'applications en utilisant la ligne de commandeHow to: Attach the Profiler to a .NET Service to Collect Application Statistics by Using the Command Line

Cette rubrique explique comment utiliser les outils en ligne de commande des Outils de profilage Visual StudioVisual Studio pour attacher le profileur à un service .NET Framework et pour collecter des statistiques de performances avec la méthode d’échantillonnage.This topic describes how to use Visual StudioVisual Studio Profiling Tools command-line tools to attach the profiler to a .NET Framework 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.

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 ajouter des données d’interaction de couche à une exécution de profilage, vous devez utiliser des procédures spécifiques avec les outils de profilage en ligne de commande.Adding tier interaction data to a profiling run requires specific procedures with the command line profiling tools. Consultez Collecte de données d’interaction de couche.See Collecting tier interaction data.

Pour collecter des données de performances auprès d’une application .NET Framework, vous devez utiliser l’outil VSPerfCLREnv.cmd pour initialiser les variables d’environnement appropriées.To collect performance data from a .NET Framework service, you must use the VSPerfCLREnv.cmd tool to initialize the appropriate environment variables. Vous devez ensuite redémarrer l’ordinateur qui héberge le service et configurer cet ordinateur pour le profilage.You must then restart the computer that hosts the service and configure that computer for profiling. Vous attachez ensuite le profileur au processus du service.You then attach the profiler to the service process. Quand le profileur est attaché au service, vous pouvez suspendre et reprendre la collecte de données.When 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. Dans la plupart des cas, nous vous recommandons de désactiver les variables d’environnement de profilage à la fin d’une session.In most cases, we recommend clearing the profiling environment variables at the end of a session.

Attachement du profileurAttaching the Profiler

Pour attacher le profileur à un service .NET FrameworkTo attach the Profiler to a .NET Framework service

  1. Installez le service.Install the service.

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

  3. Initialisez les variables d’environnement de profilage.Initialize the profiling environment variables. Type :Type:

    VSPerfClrEnv /globalsampleon [/samplelineoff]VSPerfClrEnv /globalsampleon [/samplelineoff]

    • /globalsampleon permet l’échantillonnage./globalsampleon enables sampling.

    • /samplelineoff désactive l’assignation des données collectées à des lignes de code source spécifiques./samplelineoff disables the assignment of collected data to specific source code lines. Lorsque cette option est spécifiée, les données sont assignées uniquement aux fonctions.When this option is specified, data is assigned only to functions.

  4. Redémarrez l'ordinateur.Restart the computer.

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

  6. 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 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 le service s’exécute dans une autre session.This option is required if the service 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.
  7. Si nécessaire, démarrez le service.If necessary, start the service.

  8. Attachez le profileur au service.Attach the profiler to the service. Type :Type:

    VSPerfCmd /attach : {PID|ProcName} [Sample Event] [/targetclr:Version]VSPerfCmd /attach : {PID|ProcName} [Sample Event] [/targetclr:Version]

    • Spécifiez l’ID (PID) ou le nom de processus (ProcName) du service.Specify the process ID (PID) or process name (ProcName) of the service. Vous pouvez afficher les ID et les noms 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 and names 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 représente environ 100 échantillons par seconde sur un processeur 1 GHz.This is approximately 100 samples per second 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.
    • targetclr : Version spécifie la version du common language runtime (CLR) à profiler lorsque plusieurs versions du runtime sont chargées dans une application.targetclr: Version specifies the version of the common language runtime (CLR) to profile when more than one version of the runtime is loaded in an application. Facultative.Optional.

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, 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 specific process is not specified.

Fin d’une session de profilageEnding the Profiling Session

Pour mettre fin à une session de profilage, vous devez détacher le profileur de tous les processus profilés et l’arrêter explicitement.To end a profiling session, the profiler must be detached from all profiled processes and the profiler must be explicitly shut down . Vous pouvez détacher le profileur d’une application profilée avec la méthode d’échantillonnage en fermant l’application ou en appelant l’option VSPerfCmd /detach.You can detach the from an application profiled with the sampling method by closing the application or by calling 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 call the VSPerfCmd /shutdown option to turn the profiler off and close the profiling data file.

La commande VSPerfClrEnv /globaloff efface les variables d’environnement de profilage. Toutefois, la configuration du système n’est pas réinitialisée tant que l’ordinateur n’a pas été redémarré.The VSPerfClrEnv /globaloff command clears the profiling environment variables, but the system configuration is not reset until the computer is restarted.

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

  3. (Facultatif) Effacez les variables d’environnement de profilage.(Optional) Clear the profiling environment variables. Type :Type:

    VSPerfClrEnv /globaloffVSPerfClrEnv /globaloff

  4. Redémarrez l'ordinateur.Restart the computer.

Voir aussiSee Also

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