Procédure : attacher le profileur à une application .NET Framework autonome pour collecter des données de mémoire en utilisant la ligne de commandeHow to: Attach the profiler to a .NET Framework stand-alone application to collect memory data by using the command line

Cet article explique comment utiliser les outils en ligne de commande des Outils de profilage Visual Studio pour attacher le profileur à une application .NET Framework autonome (cliente) en cours d’exécution et collecter des données de mémoire.This article describes how to use Visual Studio Profiling Tools command-line tools to attach the profiler to a running .NET Framework stand-alone (client) application and collect memory data.

Note

Pour obtenir le chemin des outils de profilage, consultez Spécifier le chemin des outils en ligne de commande.To get the path to the profiling tools, see Specify the path to command line tools. 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 attacher une application .NET Framework et collecter des données de mémoire, vous devez utiliser l’outil VSPerfCLREnv.cmd pour initialiser les variables d’environnement appropriées avant le démarrage de l’application cible.To attach to a .NET Framework application and collect memory data, you must use the VSPerfCLREnv.cmd tool to initialize the appropriate environment variables before the target application starts. Quand le profileur est attaché à l’application, vous pouvez utiliser l’outil VSPerfCmd.exe pour suspendre et reprendre la collecte des données.When the profiler is attached to the application, you can use the VSPerfCmd.exe tool to pause and resume data collection.

Pour que vous puissiez mettre fin à une session de profilage, le profileur ne doit plus être attaché à un processus profilé et doit être arrêté explicitement.To end a profiling session, the profiler must be detached from all profiled processes 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.

Attacher le profileurAttach the profiler

Pour attacher le profileur à une application .NET Framework en cours d’exécutionTo attach the profiler to a running .NET Framework application

  1. Ouvrez une fenêtre Invite de commandes.Open a Command Prompt window.

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

    VSPerfClrEnv {/samplegc | /samplegclife} [/samplelineoff]VSPerfClrEnv {/samplegc | /samplegclife} [/samplelineoff]

    • Les options /samplegc et /samplegclife spécifient s’il faut collecter seulement les données d’allocation de mémoire, ou collecter à la fois les données d’allocation de mémoire et les données de durée de vie des objets.The /samplegc and /samplegclife options specify whether to collect only memory allocation data, or to collect both memory allocation and object lifetime data. Vous ne pouvez spécifier qu’une seule option.One and only one option must be specified.

      OptionOption DescriptionsDescriptions
      /samplegc/samplegc Collecter seulement les données d’allocation de mémoire.Collect only memory allocation data.
      /samplegclife/samplegclife Collecte à la fois les données d’allocation de mémoire et les données de durée de vie des objets.Collect both memory allocation and object lifetime data.
    • L’option /samplelineoff désactive la collecte des données de ligne de code source.The /samplelineoff option disables the collection of source code line number data.

  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 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.

      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 | /cs/crosssession | /cs 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’identificateur de session est répertorié dans la colonne ID de session, sous l’onglet Processus du gestionnaire des tâches de Windows.The session idenitifer 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.
  4. Si nécessaire, démarrez l’application cible de la façon habituelle.If necessary, start the target application in the typical way.

  5. Attachez le profileur à l’application cible.Attach the profiler to the target application. Type :Type:

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

    • PID spécifie l’ID de processus de l’application cible.PID specifies the process ID of the target application. ProcessName spécifie le nom du processus.ProcessName specifies the name of the process. Notez que si vous spécifiez ProcessName et que plusieurs processus de même nom sont en cours d’exécution, les résultats sont imprévisibles.Note that if you specify ProcessName and multiple processes that have the same name are running, results are unpredictable. 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.

    • /targetclr: Version spécifie la version du common language runtime (CLR) à profiler quand 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. Optionnel.Optional.

Contrôler la collecte des donnéesControl data collection

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.When the target application is running, you can control data collection by starting and stopping the writing of data to the file by using 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.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 suivantes permettent de démarrer et d’arrêter la collecte des données.The following pairs of 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 le PID.Starts (/processon) or stops (/processoff) data collection for the process that is specified by the PID.
    /attach :{PID|ProcName} /detach[:{PID|ProcName}]/attach :{PID|ProcName} /detach[:{PID|ProcName}] /attach démarre la collecte de données pour le processus spécifié par le PID ou par le nom du processus (ProcName)./attach starts to collect data for the process that is specified by the PID or process name (ProcName). /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.

Arrêter la session de profilageEnd the profiling session

Pour que vous puissiez mettre fin à une session de profilage, le profileur ne doit plus être attaché à un processus profilé et doit être arrêté 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 profiler from an application that was profiled by using 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 off the profiler and close the profiling data file. La commande VSPerfClrEnv /off efface les variables d’environnement de profilage.The VSPerfClrEnv /off command clears the profiling environment variables.

Pour terminer une session de profilageTo end a profiling session

  1. Effectuez l’une des opérations suivantes pour détacher le profileur de l’application cible :Perform one of the following steps to detach the profiler from the target application:

    • Tapez VSPerfCmd /detachType VSPerfCmd /detach

      - ou --or-

    • Fermez l’application cible.Close the target application.

  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:

    VSPerfCmd /offVSPerfCmd /off

Voir aussiSee also

Profiler des applications autonomes Vues de données mémoire .NETProfile stand-alone applications .NET memory data views