Comment : instrumenter une application Web ASP.NET compilée statiquement et collecter des données de mémoire en utilisant la ligne de commande du profileur
Cette rubrique explique comment utiliser les outils en ligne de commande des outils de profilage Visual Studio pour instrumenter un composant Web ou un site Web ASP.NET précompilé et collecter des données d'allocation de mémoire .NET, de durée de vie d'objet et de temporisation détaillées.
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 s 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 d'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 collecter les données d'un composant Web ASP.NET à l'aide de la méthode d'instrumentation, utilisez l'outil VSInstr.exe pour générer une version instrumentée du composant. Sur l'ordinateur qui héberge le composant, remplacez la version non instrumentée du composant par la version instrumentée. Utilisez ensuite l'outil VSPerfCLREnv.cmd pour initialiser les variables d'environnement de profilage globales et redémarrer l'ordinateur hôte. Vous démarrez alors le profileur.
Lorsque le composant instrumenté est exécuté, les données de minutage sont automatiquement collectées dans un fichier de données. Vous pouvez suspendre et reprendre la collecte de données pendant la session de profilage.
Pour terminer une session de profilage, fermez le processus de travail ASP.NET qui héberge le composant, puis arrêtez explicitement le profileur. Dans la plupart des cas, nous vous recommandons de désactiver les variables d'environnement de profilage à la fin d'une session.
Début du profilage
Pour instrumenter un composant Web ASP.NET et commencer le profilage
Utilisez l'outil VSInstr pour générer une version instrumentée de l'application cible. Si nécessaire, remplacez les binaires d'application sur l'ordinateur hôte ASP.NET par les binaires instrumentés.
Ouvrez une fenêtre d'invite de commandes.
Initialisez les variables d'environnement de profilage .NET. Dans une fenêtre d'invite de commandes, tapez :
VSPerfClrEnv /globaltracegc
ou
VSPerfClrEnv /globaltracegclife
/globaltracegc collecte les données d'allocation de mémoire .NET et de temporisation.
/globaltracegclife collecte les données d'allocation de mémoire .NET, de durée de vie d'objet, ainsi que des données de temporisation détaillées.
Redémarrez l'ordinateur.
Ouvrez une fenêtre d'invite de commandes.
Démarrez le profileur. Dans une fenêtre d'invite de commandes, tapez :
VSPerfCmd /start:trace **/output:**OutputFile [Options]
L'option /start:trace 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:trace.
Notes
Les options /user et /crosssession sont généralement requises pour les applications ASP.NET.
Option
Description
/user:[Domain\]UserName
Spécifie le domaine et le nom d'utilisateur facultatifs du compte qui possède le processus de travail ASP.NET. Cette option est requise si le processus s'exécute via un compte d'utilisateur différent de celui de l'utilisateur qui a ouvert la session. Le nom est répertorié dans la colonne Nom d'utilisateur sous l'onglet Processus du Gestionnaire des tâches 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.
/events:Config
Spécifie un événement ETW (Event Tracing for Windows) à collecter au cours du profilage. Les événements ETW sont collectés dans un fichier séparé (.etl).
Pour démarrer le profileur avec la collecte de données en pause, ajoutez l'option /globaloff à la ligne de commande /start. Utilisez /globalon pour reprendre le profilage.
Ouvrez le site Web qui contient le composant instrumenté.
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 l'ID de processus (PID).
/threadon:TID /threadoff:TID
Démarre (/threadon) ou arrête (/threadoff) la collecte de données pour le thread spécifié par l'ID de thread (TID).
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 dans les rapports et les vues de données du profileur.
Fin de la session de profilage
Pour terminer une session de profilage, fermez l'application Web ASP.NET, puis utilisez la commande Internet Information Services (IIS) IISReset pour fermer le processus de travail ASP.NET. Appelez l'option VSPerfCmd /shutdown pour arrêter le profileur et fermer le fichier de données de profilage. La commande VSPerfClrEnv /globaloff désactive les variables d'environnement de profilage. Vous devez redémarrer l'ordinateur pour que les nouveaux paramètres d'environnement soient appliqués.
Pour terminer une session de profilage
Fermez l'application Web ASP.NET.
Fermez le processus de travail ASP.NET. Tapez :
IISReset /stop
Fermez le profileur. Type :
VSPerfCmd /shutdown
(Facultatif). Désactivez les variables d'environnement de profilage. Type :
VSPerfCmd /globaloff
Redémarrez l'ordinateur. Si nécessaire, redémarrez IIS. Type :
IISReset /start
Voir aussi
Concepts
Profilage d'applications Web ASP.NET à partir de la ligne de commande