Comment : attacher le profileur à une application .NET Framework autonome pour collecter des données de mémoire en utilisant la ligne de commande
Cette rubrique explique comment utiliser les outils en ligne de commande des outils de profilage Visual Studio Premium pour attacher le profileur à une application (cliente) autonome du .NET Framework en cours d'exécution, puis collecter des données de mémoire.
Notes
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. Sur les ordinateurs 64 bits, les versions 64 bits et 32 bits de ces outils sont disponibles. Pour utiliser les outils en ligne de commande du profileur, vous devez ajouter le chemin d'accès des outils à la variable d'environnement PATH de la fenêtre Invite de commandes ou l'ajouter à la commande elle-même. Pour plus d'informations, consultez Spécification du chemin d'accès aux outils en ligne de commande des outils de profilage.
Pour attacher le profileur à une application .NET Framework et collecter les 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. Une fois le profileur attaché à l'application, vous pouvez utiliser l'outil VSPerfCmd.exe pour suspendre et reprendre la collecte de données.
Pour terminer une session de profilage, le profileur doit être détaché de tous les processus profilés et arrêté explicitement. Dans la plupart des cas, nous vous recommandons de désactiver les variables d'environnement de profilage à la fin d'une session.
Attachement du profileur
Pour attacher le profileur à une application .NET Framework en cours d'exécution
Ouvrez une fenêtre d'invite de commandes.
Initialisez les variables d'environnement de profilage. Type :
VSPerfClrEnv {/samplegc | /samplegclife} [/samplelineoff]
Les options /samplegc et /samplegclife indiquent s'il faut collecter des données d'allocation de mémoire uniquement, ou collecter à la fois les données d'allocation de mémoire et de durée de vie de l'objet. Vous ne pouvez spécifier qu'une seule et unique option.
Option
Descriptions
/samplegc
Collecte uniquement les données d'allocation de mémoire.
/samplegclife
Collecte les données d'allocation de la mémoire et de durée de vie des objets.
L'option /samplelineoff désactive la collection de données de numéros de ligne du code source.
Démarrez le profileur. Tapez :
**VSPerfCmd /start:sample /output:**OutputFile [Options]
L'option /start:sample initialise le profileur.
L'option /output**:**OutputFile est requise avec /start. OutputFile spécifie le nom et l'emplacement du fichier de données de profilage (.vsp).
Vous pouvez utiliser n'importe laquelle des options suivantes avec l'option /start:sample.
Option
Description
/user:[Domain\]UserName
Spécifie le domaine et le nom d'utilisateur du compte qui possède le processus profilé. Cette option est uniquement requise si le processus s'exécute en tant qu'utilisateur autre que l'utilisateur connecté. 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.
Active le profilage de processus dans d'autres sessions. Cette option est requise si l'application s'exécute dans une session différente. L'identificateur de session est répertorié dans la colonne Identificateur de session sous l'onglet Processus du Gestionnaire des tâches de Windows. /CS peut être spécifié en tant qu'abréviation de /crosssession.
/wincounter:WinCounterPath
Spécifie un compteur de performance Windows à collecter au cours du profilage.
/automark:Interval
À n'utiliser qu'avec /wincounter. Spécifie le nombre de millisecondes entre les événements de collecte du compteur de performance Windows. La valeur par défaut est de 500 ms.
Si nécessaire, démarrez l'application cible de la manière habituelle.
Attachez le profileur à l'application cible. Tapez :
VSPerfCmd /attach:{PID|ProcName} [/targetclr**:**Version]
PID spécifie l'ID de processus de l'application cible. ProcessName spécifie le nom du processus. Notez que si vous spécifiez ProcessName et que plusieurs processus du même nom sont en cours d'exécution, les résultats sont imprévisibles. Vous pouvez afficher les ID de processus de tous les processus en cours d'exécution dans le Gestionnaire des tâches de Windows.
**/targetclr:**Version spécifie la version du Common Language Runtime (CLR) à profiler lorsque plusieurs versions du runtime sont chargées dans une application. Facultatif.
Contrôle de la collecte de données
Lorsque l'application cible s'exécute, vous pouvez contrôler la collecte de données en démarrant et en arrêtant l'écriture de données dans le fichier à l'aide des options VSPerfCmd.exe. Le contrôle de la collecte de données vous permet de collecter des données pour une partie spécifique de l'exécution du programme, notamment le démarrage ou l'arrêt de l'application.
Pour démarrer et arrêter la collecte de données
Les paires suivantes d'options démarrent et arrêtent la collecte de données. Spécifiez chaque option sur une ligne de commande séparée. Vous pouvez activer et désactiver la collecte de données à plusieurs reprises.
Option
Description
Démarre (/globalon) ou arrête (/globaloff) la collecte de données pour tous les processus.
/processon:PID /processoff:PID
Démarre (/processon) ou arrête (/processoff) la collecte de données pour le processus spécifié par PID (l'ID de processus).
/attach commence à collecter des données pour le processus spécifié par l'ID de processus (PID) ou le nom de processus (ProcName). /detach arrête la collecte de données pour le processus spécifié ou pour tous les processus si aucun processus n'est spécifié.
Vous pouvez également utiliser l'option VSPerfCmd.exe /mark pour insérer une marque de profilage dans le fichier de données. La commande /mark ajoute un identificateur, un horodatage et une chaîne de texte facultative définie par l'utilisateur. Les marques peuvent servir à filtrer les données.
Fin de la session de profilage
Pour terminer une session de profilage, le profileur doit être détaché de tous les processus profilés et arrêté explicitement. Vous pouvez détacher le profileur d'une application qui a été profilée via la méthode d'échantillonnage en fermant l'application ou en appelant l'option VSPerfCmd /detach. Vous appelez alors l'option VSPerfCmd /shutdown pour arrêter le profileur et fermer le fichier de données de profilage. La commande VSPerfClrEnv /off désactive les variables d'environnement de profilage.
Pour terminer une session de profilage
Effectuez l'une des étapes suivantes pour détacher le profileur de l'application cible :
Tapez VSPerfCmd /detach
ou
Fermez l'application cible.
Fermez le profileur. Tapez :
VSPerfCmd /shutdown
(Facultatif) Désactivez les variables d'environnement de profilage. Type :
VSPerfCmd /off
Voir aussi
Concepts
Profilage d'applications autonomes à partir de la ligne de commande