Comment : instrumenter un service .NET et collecter des données de temporisation détaillées 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 Premium pour instrumenter un service .NET Framework et collecter des données de temporisation détaillées.
[!REMARQUE]
Vous ne pouvez pas profiler un service avec la méthode d'instrumentation si ce service ne peut pas être redémarré après le démarrage de l'ordinateur, tel qu'un service qui démarre uniquement au démarrage du système d'exploitation.
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 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.
L'ajout de données d'interaction entre les couches à une exécution du profilage requiert des procédures spécifiques avec les outils de profilage de ligne de commande.Consultez Ajout des données d'interaction de couche à partir de la ligne de commande.
Pour collecter des données de temporisation détaillées pour un service .NET Framework à l'aide de la méthode d'instrumentation, utilisez l'outil VSInstr.exe pour générer une version instrumentée du composant.Remplacez ensuite la version non instrumentée du service par la version instrumentée, en vous assurant que le service est configuré pour démarrer manuellement.Vous utilisez l'outil VSPerfCLREnv.cmd pour initialiser les variables d'environnement de profilage globales et ensuite redémarrez l'ordinateur hôte.Vous démarrez alors le profileur.
Lorsque le service est démarré, les données de temporisation sont collectées automatiquement 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, arrêtez le service, 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émarrage de l'application avec le profileur
Pour commencer à profiler un service .NET Framework
Ouvrez une fenêtre d'invite de commandes.
Utilisez l'outil VSInstr pour générer une version instrumentée du binaire de service.
Remplacez le binaire d'origine par la version instrumentée.Dans le Gestionnaire de contrôle des services Windows, vérifiez que le service Type de démarrage a la valeur Manuel.
Initialisez les variables d'environnement de profilage .NET Framework.Type :
VSPerfClrEnv /globaltraceon
Redémarrez l'ordinateur.
Ouvrez une fenêtre d'invite de commandes.
Démarrez le profileur.Type :
**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.
[!REMARQUE]
Les options /user et /crosssession sont généralement requises pour les services de profilage.
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'un 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.
/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é.
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.
/counter:Config
Collecte des informations du compteur de performance de processeur spécifié dans Config.Des informations de compteur sont ajoutées aux données collectées à chaque événement de profilage.
/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).
Démarrez le service à partir du Gestionnaire de contrôle des services Windows.
Contrôle de la collecte de données
Lorsque le service s'exécute, vous pouvez utiliser les options VSPerfCmd.exe pour démarrer et arrêter l'écriture de données dans le fichier de données du profileur.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 du service.
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
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).
Fin de la session de profilage
Pour terminer une session de profilage, arrêtez le service qui exécute le composant instrumenté, puis appelez l'option VSPerfCmd /shutdown pour désactiver le profileur et fermer le fichier des 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
Arrêtez le service à partir du Gestionnaire de contrôle des services.
Arrêtez le profileur.Type :
VSPerfCmd /shutdown
Une fois que vous avez terminé le profilage, effacez les variables d'environnement de profilage.Type :
VSPerfClrEnv /globaloff
Remplacez le module instrumenté par le module d'origine.Si nécessaire, reconfigurez le type de démarrage du service.
Redémarrez l'ordinateur.
Voir aussi
Concepts
Profilage de services à partir de la ligne de commande
Autres ressources
Vues de données de la méthode d'instrumentation du profileur