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

Cette rubrique explique comment utiliser les outils en ligne de commande des outils de profilage Visual StudioVisual Studio pour démarrer une application autonome (cliente) .NET Framework et collecter des données de mémoire.This topic describes how to use Visual StudioVisual Studio Profiling Tools command-line tools to start a .NET Framework stand-alone (client) application and collect memory data.

Une session de profilage est constituée de trois parties :A profiling session has three parts:

  • Le démarrage de l’application à l’aide du profileurStarting the application by using the profiler.

  • La collecte des données de profilageCollecting profiling data.

  • La fin de la session de profilageEnding the profiling session.

Note

Pour obtenir le chemin d’accès des outils de profilage, voir Spécifier le chemin d’accès 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.

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

Pour démarrer une application cible à l’aide du profileur, utilisez les options /start et /launch de VSPerfCmd.exe pour initialiser le profileur et démarrer l’application.To start a target application by using the profiler, you use the VSPerfCmd.exe/start and /launch options to initialize the profiler and start the application. Vous pouvez spécifier /start et /launch et leurs options respectives sur une même ligne de commande.You can specify /start and /launch and their respective options on one 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 options 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 start to collect data.

Pour démarrer une application à l’aide du profileurTo start an application by using the profiler

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

  2. 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
    /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.
  3. Démarrez l’application cible.Start the target application. Type :Type:

    VSPerfCmd /launch : appName /gc: {allocation|lifetime}[Options]VSPerfCmd /launch : appName /gc:{allocation|lifetime}[Options]

    • L’option /gc : Keyword est nécessaire pour collecter les données de mémoire .NET Framework.The /gc:Keyword option is required to collect .NET Framework memory data. Le paramètre de mot clé spécifie s’il faut collecter 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 keyword parameter specifies whether to collect memory allocation data, or to collect both memory allocation and object lifetime data.

      Mot cléKeyword DescriptionDescription
      allocationallocation Collecter les données d’allocation de mémoire uniquement.Collect memory allocation data only.
      lifetimelifetime 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.

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

    OptionOption DescriptionDescription
    /args : Arguments/args : Arguments Spécifie une chaîne qui contient les arguments de ligne de commande à passer à l’application cible.Specifies a string that contains the command-line arguments to be passed to the target application.
    /console/console Démarre l’application en ligne de commande cible dans une fenêtre distincte.Starts the target command-line application in a separate window.
    /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.
    /targetclr : Version/targetclr : Version Spécifie la version du common language runtime (CLR) à profiler lorsque plusieurs versions du runtime sont chargées dans une application.Specifies the version of the common language runtime (CLR) to profile when more than one version of the runtime is loaded in an application.

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 l’ID de processus (PID).Starts (/processon) or stops (/processoff) data collection for the process that is specified by the process ID (PID).
    /attach : PID /detach/attach : PID /detach /attach commence à collecter des données pour le processus spécifié par PID (l’ID du processus)./attach starts to collect data for the process that is specified by PID (the process ID). /detach arrête la collecte des données pour tous les processus./detach stops data collection for all processes.
  • Vous pouvez également utiliser l’option VSPerfCmd.exe/mark pour insérer une marque de profilage dans le fichier de données.You can also use the VSPerfCmd.exe/mark option to insert a profiling mark into the data file. La commande /mark ajoute un identificateur, un horodatage et une chaîne de texte facultative définie par l’utilisateur.The /mark command adds an identifier, a time stamp, and an optional user-defined text string. Les marques peuvent servir à filtrer les données.Marks can be used to filter the data.

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:

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

      -ou--or-

    • Tapez VSPerfCmd /detachType VSPerfCmd /detach

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

    VSPerfCmd /shutdownVSPerfCmd /shutdown

Voir aussiSee also