Share via


Procédure pas à pas : profilage d'applications

Mise à jour : novembre 2007

Cette procédure pas à pas illustre le profilage d'une application pour identifier les problèmes de performances.

Dans cette procédure pas à pas, vous exécuterez étape par étape le processus de profilage d'une application managée et d'utilisation de l'échantillonnage et de l'instrumentation pour isoler et identifier les problèmes de performances de l'application.

Dans cette procédure pas à pas, vous exécuterez ces étapes :

  • profiler une application en utilisant la méthode d'échantillonnage ;

  • analyser les résultats de profilage échantillonnés pour rechercher et résoudre un problème de performance ;

  • profiler une application en utilisant la méthode d'instrumentation ;

  • analyser les résultats de profilage instrumentés pour rechercher et résoudre un problème de performance ;

Composants requis

Pour utiliser les informations fournies par le profilage, il est préférable d'avoir à disposition des informations de symboles de débogage.

Profilage à l'aide de la méthode d'échantillonnage

L'échantillonnage est une méthode de profilage par laquelle le processus en question est périodiquement interrogé pour déterminer la fonction active. Les données qui en résultent fournissent le nombre de fois que la fonction elle-même était au-dessus de la pile des appels au moment de l'échantillonnage du processus.

Pour profiler une application à l'aide de la méthode d'échantillonnage

  1. Ouvrez la solution PeopleTrax dans Microsoft Visual Studio 2005.

    La solution PeopleTrax s'affiche à présent dans l'Explorateur de solutions.

  2. Dans le menu Analyser, cliquez sur Lancer l'Assistant Performance.

    L'Assistant de performance s'affiche.

  3. Dans la liste déroulante Cibles disponibles, sélectionnez PeopleTrax, puis cliquez sur Suivant.

  4. Cliquez sur Échantillonnage, puis cliquez sur Suivant.

  5. Cliquez sur Terminer.

  6. Affectez au paramètre de configuration du projet l'option Release.

    Il est recommandé d'utiliser une version release pour détecter les problèmes de performances de votre application.

    Une version release est recommandée pour le profilage car une version debug contient des informations complémentaires compilées qui peuvent dégrader les performances et l'empêcher d'illustrer avec exactitude les problèmes de performances.

    Une version release ne vous donne pas automatiquement d'informations sur les symboles. Pour configurer votre build de manière à ce que les informations de symboles soient visibles dans les rapports de performances du profileur, consultez /Z7, /Zi, /ZI (Format des informations de débogage) et Comment : référencer les informations de symboles Windows.

  7. Dans la barre d'outils de l'Explorateur de performances, cliquez sur Lancer.

    Visual Studio 2005 génère le projet et commence à profiler l'application. La fenêtre d'application PeopleTrax s'affiche.

  8. Cliquez sur Get People.

  9. Cliquez sur Exporterles données.

    Le Bloc-notes s'ouvre et affiche un nouveau fichier qui contient les données exportées de PeopleTrax.

  10. Fermez le Bloc-notes, puis l'application PeopleTrax.

    Visual Studio 2005 génère un rapport de session de performance (*.vsp) et le charge automatiquement.

Pour analyser les résultats de profilage échantillonnés

  1. Sur la barre d'outils de la fenêtre Profileur, ouvrez la liste déroulante de la vue des rapports et sélectionnez la vue Fonctions du rapport.

  2. Cliquez avec le bouton droit sur la grille de données, puis cliquez sur Ajouter/Supprimer des colonnes.

    La boîte de dialogue Ajouter/Supprimer des colonnes s'affiche.

  3. Dans la liste des colonnes, sélectionnez Nom du fichier source, puis cliquez sur OK.

  4. Sur la grille de données, cliquez sur la colonne Nom du fichier source pour trier la grille de données.

    En effectuant le tri sur cette colonne, toutes les lignes qui s'appliquent à la solution PeopleTrax sont regroupées.

  5. Recherchez les lignes qui affichent des données de la solution PeopleTrax.

    Après avoir examiné ces lignes, vous constatez que les fonctions suivantes ont été échantillonnées plus souvent que d'autres parties de la solution PeopleTrax :

    PeopleTrax.Form1.GetPeopleButton_Click

    Placez le focus sur l'événement GetPeopleButton_Click.

  6. Cliquez avec le bouton droit sur la ligne PeopleTrax.Form1.GetPeople_Click, puis cliquez sur Afficher la source.

    Form1.cs s'ouvre dans l'éditeur de code et le pointeur apparaît dans l'événement GetPeopleButton_Click.

  7. Passez en revue le code source de l'événement GetPeopleButton_Click.

    Une fois que vous avez passé en revue ce code, vous pouvez identifier des zones pour l'optimisation :

    • Si vous souhaitez ajouter des éléments un par un en utilisant la méthode Ajouter de la classe ListView.ListViewItemCollection, vous pouvez utiliser la méthode BeginUpdate pour empêcher le contrôle de repeindre le mode Liste chaque fois que vous ajoutez un élément. Une fois que vous avez terminé la tâche d'ajout d'éléments au contrôle, appelez la méthode EndUpdate pour que le mode Liste puisse être repeint. Cette méthode d'ajout d'éléments peut éviter le scintillement pendant le dessin du mode Liste lorsque vous ajoutez un grand nombre d'éléments au contrôle et accélérera le remplissage du mode Liste.

      Le paramètre par défaut dans App.Config est de 1500 noms.

    • Lorsque vous définissez la couleur de premier plan de l'élément du mode liste, vous pouvez accroître les performances en utilisant l'énumération KnownColor au lieu de spécifier la couleur dans une chaîne et d'appeler la méthode Color.FromName.

    • Cet événement appelle une fonction intitulée People.GetPeople pour extraire un tableau de noms à ajouter au mode liste.

  8. Cliquez avec le bouton droit sur l'appel de la méthode GetPeople, puis cliquez sur Atteindre la définition.

    Une fois que vous avez passé en revue ce code, vous pouvez identifier des zones pour l'optimisation :

    • Le système accède à plusieurs reprises au code permettant de récupérer un nouveau tableau de fullNames et companyNames. Ces tableaux doivent être créés une fois et réutilisés.

    • Pour remplacer ces sources d'incident par du code optimisé, ajoutez OPTIMIZED_GETPEOPLE comme symbole de compilation conditionnelle aux projets PeopleTrax et People.

  9. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur PeopleTrax, puis cliquez sur Propriétés.

    Le formulaire de propriétés du projet PeopleTrax s'affiche.

  10. Cliquez sur l'onglet Générer.

  11. Dans la zone de texte Symboles de compilation conditionnelle, ajoutez OPTIMIZED_GETPEOPLE.

  12. Répétez les étapes 18 à 20 pour le projet People.

  13. Fermez les formulaires de propriétés des projets, puis enregistrez tout lorsque vous y êtes invité.

Il est recommandé de réexécuter la session de profilage, même s'il existe des améliorations au niveau des performances visibles par l'utilisateur. Il est important de passer les données en revue après avoir résolu un problème si le premier problème en masque un autre.

Maintenant, profilez l'application en utilisant la méthode d'instrumentation.

Profilage à l'aide de la méthode d'instrumentation

L'instrumentation est une méthode de profilage par laquelle les versions spécialement générées des binaires profilés contiennent des fonctions de sonde qui collectent des informations de durée au niveau de l'entrée et de la sortie sur les fonctions d'un module instrumenté. Étant donné que cette méthode de profilage est plus importante que l'échantillonnage, elle entraîne une plus grande quantité de charge mémoire. Les binaires instrumentés sont également plus volumineux que les versions de débogage ou release et ne sont pas conçus pour le déploiement.

Pour profiler une application existante à l'aide de la méthode d'instrumentation

  1. Dans l'Explorateur de performances, cliquez sur Instrumentation dans la liste déroulante.

  2. Dans la barre d'outils Explorateur de performances, cliquez sur le bouton Lancer.

    Microsoft Visual Studio 2005 génère le projet et commence à profiler l'application. La fenêtre d'application PeopleTrax s'affiche.

  3. Cliquez sur Get People.

    La grille de données PeopleTrax est remplie avec les données.

  4. Cliquez sur Exporter les données.

    Le Bloc-notes démarre et affiche un nouveau fichier qui contient une liste de personnes de PeopleTrax.

  5. Fermez le Bloc-notes, puis l'application PeopleTrax.

    Microsoft Visual Studio 2005 génère un rapport de session de performance (*.vsp).

Pour analyser les résultats de profilage instrumentés

  1. En mode Résumé du rapport, passez en revue les tableaux récapitulatifs pour identifier quelle fonction a été appelée le plus fréquemment et où l'essentiel de l'exécution de l'application s'est produit.

    En fonction de ces informations, vous constatez que l'application a passé beaucoup de temps à exécuter des opérations System.String.Concat.

  2. Double-cliquez sur System.String.Concat dans l'un des tableaux récapitulatifs.

    Le rapport passe au mode Fonction et met en surbrillance System.String.Concat.

  3. Cliquez avec le bouton droit sur la ligne System.String.Concat, puis cliquez sur Afficher en mode Appelant/Appelé.

    Le rapport passe au mode Appelant/appelé et indique que cette fonction est appelée par PeopleTrax.Form1.ExportData.

  4. Cliquez avec le bouton droit sur PeopleTrax.Form1.ExportData, puis cliquez sur Afficher la source.

    Form1.cs s'ouvre dans l'éditeur de code et le pointeur apparaît dans la fonction ExportData.

  5. Passez en revue le code source de la fonction ExportData.

    Après avoir passé en revue ce code, vous pouvez remarquer qu'il n'y a pas d'appels littéraux à System.String.Concat. En lieu et place, il existe de nombreuses utilisations de l'opérande += qui est remplacée par les appels à System.String.Concat dans IL (Intermediate Language). Toute modification apportée à une chaîne dans le .NET Framework provoque l'allocation d'une nouvelle chaîne. Le .NET Framework inclut une classe StringBuilder qui est optimisée pour la concaténation des chaînes.

  6. Pour remplacer cette source d'incident par du code optimisé, ajoutez OPTIMIZED_EXPORTDATA comme symbole de compilation conditionnelle au projet PeopleTrax.

  7. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur PeopleTrax, puis cliquez sur Propriétés.

    Le formulaire de propriétés du projet PeopleTrax s'affiche.

  8. Cliquez sur l'onglet Générer.

  9. Dans la zone de texte Symboles de compilation conditionnelle, ajoutez OPTIMIZED_EXPORTDATA.

  10. Fermez le formulaire de propriétés du projet et choisissez Enregistrer tout lorsque vous y êtes invité.

Lorsque vous lancez à nouveau l'application, vous constaterez des améliorations au niveau des performances. Il est recommandé de réexécuter la session de profilage, même s'il existe des améliorations au niveau des performances visibles par l'utilisateur. Il est important de passer en revue les données après avoir résolu un problème si le premier problème en masque un autre.

Voir aussi

Référence

/Z7, /Zi, /ZI (Format des informations de débogage)

Autres ressources

Démarrage avec les outils de profilage

Vues d'ensemble (outils de profilage)