Partager via


Comment : attacher le profileur à une application Web ASP.NET 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 pour attacher le profileur à une application Web ASP.NET et collecter des données sur le nombre et la taille des allocations de mémoire .NET Framework.Vous pouvez également collecter des données sur la durée de vie des objets mémoire .NET Framework.

[!REMARQUE]

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 sSur 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 collecter les données de performance d'une application Web ASP.NET , vous devez utiliser l'outil VSPerfCLREnv.cmd pour initialiser les variables d'environnement appropriées sur l'ordinateur qui héberge l'application Web ASP.NET . Vous devez ensuite redémarrer l'ordinateur pour configurer le serveur Web pour le profilage.

Utilisez ensuite l'outil VSPerfCmd.exe pour attacher le profileur au processus de travail ASP.NET qui héberge votre site Web.Une fois le profileur attaché à l'application, vous pouvez suspendre la collecte de données et la reprendre.

Pour terminer une session de profilage, le profileur ne doit plus être attaché à l'application et il doit être 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 Web ASP.NET

  1. Ouvrez une fenêtre d'invite de commandes.

  2. Initialisez les variables d'environnement de profilage.Type :

    VSPerfClrEnv {/globalsamplegc | /globalsamplegclife} [/samplelineoff]

    • Les options /globalsamplegc et /globalsamplegclife spécifient le type de données de mémoire à collecter.

      Spécifiez une seule des options suivantes.

      Option

      Description

      /globalsamplegc

      Active la collecte des données d'allocation de mémoire.

      /globalsamplegclife

      Active la collecte des données d'allocation de mémoire et des données de durée de vie d'objets.

    • L'option /samplelineoff désactive l'assignation des données collectées à des lignes de code source spécifiques.Si cette option est spécifiée, les données sont assignées au niveau de la fonction.

  3. Redémarrez l'ordinateur pour définir la nouvelle configuration de l'environnement.

  4. Ouvrez une fenêtre d'invite de commandes.Si nécessaire, définissez la variable d'environnement de chemin d'accès du profileur.

  5. Démarrez le profileur.Type :

    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.

    [!REMARQUE]

    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 du compte qui possède le processus de travail ASP.NET.Cette option est 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.

    /crosssession

    Active le profilage de processus dans d'autres ouvertures de session.Cette option est requise si l'application ASP.NET 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.

    /waitstart [:Interval]

    Spécifie le nombre de secondes d'attente lors de l'initialisation du profileur avant qu'une erreur ne soit retournée.Si Interval n'est pas spécifié, le profileur attend indéfiniment.Par défaut, /start est immédiatement retourné.

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

  6. Démarrez l'application Web ASP.NET de manière classique.

  7. Attachez le profileur au processus de travail ASP.NET.Type :

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

    • L'ID de processus (PID) spécifie l'ID ou le nom du processus de travail ASP.NET.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.

Contrôle de la collecte de données

Pendant l'exécution de l'application, vous pouvez contrôler la collecte de données en démarrant et en arrêtant l'écriture de données dans le fichier de données du profileur à 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 VSPerfCmd 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

    /globalon /globaloff

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

    /attach:{PID|ProcName} /detach[:{PID|:ProcName}]

    /attach commence à collecter des données pour le processus spécifié par l'ID de processus ou le nom de processus./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 dans les rapports et les vues de données du profileur.

Fin de la session de profilage

Pour terminer une session de profilage, détachez le profileur de l'application Web.Vous pouvez arrêter la collecte de données sur une application profilée avec la méthode d'échantillonnage en redémarrant le processus de travail ASP.NET ou en appelant l'option VSPerfCmd /detach.Appelez ensuite 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, mais la configuration du système n'est réinitialisée qu'au redémarrage de l'ordinateur.

Pour terminer une session de profilage

  1. Effectuez l'une des étapes suivantes pour détacher le profileur de l'application cible :

    • Tapez VSPerfCmd /detach

      ou

    • Fermez le processus de travail ASP.NET.Type :

    IISReset /stop

  2. Arrêtez le profileur.Type :

    VSPerfCmd /shutdown

  3. (Facultatif) Désactivez les variables d'environnement de profilage.Type :

    VSPerfCmd /globaloff

  4. Redémarrez l'ordinateur.Si nécessaire, redémarrez les services Internet (IIS).Type :

    IISReset /start

Voir aussi

Concepts

Profilage d'applications Web ASP.NET à partir de la ligne de commande

Autres ressources

Vues de données de mémoire .NET des outils de profilage