Guide du débutant en échantillonnage de l’UCBeginners guide to CPU sampling

Vous pouvez utiliser les outils de profilage de Visual Studio pour analyser les problèmes de performances dans votre application.You can use Visual Studio profiling tools to analyze performance issues in your application. Cette procédure montre comment utiliser des données d’échantillonnage.This procedure shows how to use Sampling data.

Note

Nous vous recommandons d’utiliser l’outil Utilisation de l’UC, situé dans la fenêtre Outils de diagnostics, plutôt que l’outil hérité d’échantillonnage de l’UC, sauf si vous avez besoin de fonctionnalités spécifiques comme la prise en charge de l’instrumentation.We recommend you use the CPU Usage tool in the Diagnostics Tools window instead of the legacy CPU sampling tool, unless you need specialized features such as instrumentation support.

L’échantillonnage est une méthode de profilage statistique qui vous montre les fonctions permettant d’effectuer la majeure partie du travail en mode utilisateur dans l’application.Sampling is a statistical profiling method that shows you the functions that are doing most of the user mode work in the application. L'échantillonnage est un bon point de départ pour rechercher des pistes pour accélérer votre application.Sampling is a good place to start to look for areas to speed up your application.

La méthode d’échantillonnage collecte les informations relatives aux fonctions qui s’exécutent dans votre application aux intervalles spécifiés.At specified intervals, the Sampling method collects information about the functions that are executing in your application. Une fois que vous avez terminé une exécution de profilage, la vue Résumé des données de profilage affiche l’arborescence des appels de fonctions les plus actifs, appelée chemin réactif, où la plupart du travail de l’application a été effectué.After you finish a profiling run, the Summary view of the profiling data shows the most active function call tree, called the Hot Path, where most of the work in the application was performed. Cette vue répertorie également les fonctions qui effectuaient le plus de travail individuel et fournit un graphique chronologique que vous pouvez utiliser pour vous concentrer sur des segments spécifiques de la session d'échantillonnage.The view also lists the functions that were performing the most individual work, and provides a timeline graph you can use to focus on specific segments of the sampling session.

Si l’échantillonnage ne vous fournit pas les données dont vous avez besoin, les méthodes de collecte d’autres outils de profilage fournissent des types d’informations différents qui peuvent vous être utiles.If Sampling does not give you the data that you need, other profiling tools collection methods provide different kinds of information that might be helpful to you. Pour plus d’informations sur ces autres méthodes, consultez Guide pratique pour choisir une méthode de collecte.For more information about these other methods, see How to: Choose collection methods.

Conseil

Si vous profilez du code qui appelle des fonctions Windows, vous devez vérifier que vous disposez des fichiers .pdb les plus récents.If you profile code that calls Windows functions, you should make sure that you have the most current .pdb files. Sans ces fichiers, vos vues de rapports répertorient des noms de fonctions Windows cryptés et difficiles à comprendre.Without these files, your report views will list Windows function names that are cryptic and difficult to understand. Pour savoir comment vérifier que vous disposez des fichiers dont vous avez besoin, consultez Guide pratique pour référencer les informations de symboles Windows.For more information about how to make sure that you have the files you need, see How to: Reference Windows symbol information.

Créer et exécuter une session de performanceCreate and run a performance session

Pour obtenir les données que vous devez analyser, vous devez d'abord créer une session de performance, puis exécuter cette session.To get the data that you need to analyze, you must first create a performance session and then run the session. L’Assistant Performance vous permet de faire les deux.The Performance Wizard lets you do both.

Si vous ne profilez pas une application de bureau Windows ou ASP.NET, vous devez utiliser un autre outil de profilage.If you are not profiling a Windows desktop app or ASP.NET app, you must use one of the other profiling tools. Consultez Découvrir les outils de profilage.See First look at profiling tools.

Pour créer et exécuter une session de performanceTo create and run a performance session

  1. Ouvrez la solution dans Visual Studio.Open the solution in Visual Studio. Définissez la configuration en Release.Set the configuration to Release. (Recherchez la zone Configurations de solutions de la barre d’outils, qui a par défaut la valeur Debug.(Find the Solution Configurations box on the toolbar, which is set to Debug by default. Remplacez-la par Release.)Change it to Release.)

    Important

    Si vous n'êtes pas administrateur sur l'ordinateur que vous utilisez, vous devez exécuter Visual Studio en tant qu'administrateur lorsque vous utilisez le profileur.If you are not an administrator on the computer that you are using, you should run Visual Studio as an administrator while you are using the profiler. Cliquez avec le bouton droit sur l’icône de l’application Visual Studio, puis cliquez sur Exécuter en tant qu’administrateur.(Right-click the Visual Studio application icon, and then click Run as administrator.

  2. Dans le menu Débogage, sélectionnez Profileur, puis Profileur de performances.On the Debug menu, select Profiler, and then select Performance Profiler.

  3. Cochez l’option Assistant Performance, puis cliquez sur Démarrer.Check the Performance Wizard option, and click Start.

  4. Cochez l’option Échantillonnage de l’UC (recommandé), puis cliquez sur Terminer.Check the CPU Sampling (recommended) option and click Finish.

  5. Votre application démarre et le profileur commence à collecter des données.Your application starts and the profiler starts to collect data.

  6. Testez les fonctionnalités qui peuvent contenir des problèmes de performances.Exercise the functionality that might contain performance issues.

  7. Fermez l'application normalement.Close the application as you usually would.

    Une fois que vous avez terminé d’exécuter l’application, la vue Résumé des données de profilage s’affiche dans la fenêtre principale de Visual Studio et une icône s’affiche pour la nouvelle session dans la fenêtre Explorateur de performances.After you finish running the application, the Summary view of the profiling data appears in the main Visual Studio window and an icon for the new session appears in the Performance Explorer window.

Étape 2 : Analyser les données d'échantillonnageStep 2: Analyze Sampling data

Lorsque vous terminez d’exécuter une session de performance, la vue Résumé du rapport de profilage s’affiche dans la fenêtre principale de Visual Studio.When you finish running a performance session, the Summary view of the profiling report appears in the main window in Visual Studio.

Nous vous recommandons de commencer à analyser vos données en examinant le chemin réactif, puis la liste des fonctions qui effectuent la majeure partie du travail, et enfin, en vous concentrant sur d’autres fonctions à l’aide de la chronologie Résumé.We recommend that you begin analyzing your data by examining the Hot Path, then the list of functions that are doing the most work, and finally by focusing on other functions by using the Summary Timeline. Vous pouvez également consulter des avertissements et des suggestions de profilage dans la fenêtre Liste d’erreurs.You can also view profiling suggestions and warnings in the Error List window.

Notez bien que la méthode d'échantillonnage peut ne pas vous donner les informations dont vous avez besoin.Be aware that the sampling method might not give you the information that you need. Par exemple, les échantillons sont collectés uniquement lorsque l'application exécute le code du mode utilisateur.For example, samples are collected only when the application is executing user mode code. Par conséquent, certaines fonctionnalités, telles que les opérations d'entrée et de sortie, ne sont pas capturées par l'échantillonnage.Therefore, some functionality, such as input and output operations, is not captured by sampling. Les outils de profilage fournissent plusieurs méthodes de collection qui peuvent vous permettre de vous concentrer sur les données importantes.The Profiling Tools provide several collection methods that can enable you to focus on the important data. Pour plus d’informations sur les autres méthodes, consultez Guide pratique pour choisir une méthode de collecte.For more information about the other methods, see How to: Choose collection methods.

Chaque zone numérotée dans l'illustration est en rapport avec une étape de la procédure.Each numbered area in the figure relates to a step in the procedure.

Vue de rapport de synthèse pour l’échantillonnageSummary report view for sampling

Pour analyser les données d'échantillonnageTo analyze sampling data

  1. Dans la vue Résumé, le chemin réactif affiche la branche de l’arborescence des appels de votre application avec les échantillons inclusifs les plus élevés.In the Summary view, the Hot Path shows the branch of your application's call tree with the highest inclusive samples. Il s’agit du chemin d’exécution qui était le plus actif au moment de la collecte des données.This is the execution path that was most active when data was collected. Les valeurs inclusives élevées peuvent indiquer que l'algorithme qui génère l'arborescence des appels peut être optimisé.High inclusive values can indicate that the algorithm that generates the call tree can be optimized. Recherchez dans votre code la fonction qui se trouve au niveau le plus profond du chemin.Find the function in your code that is lowest in the path. Notez que le chemin d’accès peut également inclure des fonctions système ou des fonctions dans des modules externes.Notice that the path can also include system functions or functions in external modules.

    Chemin réactif du profileurProfiler Hot Path

    1. Les échantillons inclusifs indiquent la quantité de travail effectué par la fonction et toute autre fonction qu’elle a appelée.Inclusive Samples indicate how much work was done by the function and any functions called by it. Les nombres inclusifs élevés pointent vers les fonctions qui sont généralement les plus coûteuses.High inclusive counts point to the functions that are most expensive overall.

    2. Les échantillons exclusifs indiquent la quantité de travail effectué par le code dans le corps de la fonction, à l’exception du travail effectué par les fonctions qu’elle a appelées.Exclusive Samples indicate how much work was done by the code in the function body, excluding the work done by functions that were called by it. Les nombres exclusifs élevés peuvent indiquer un goulot d'étranglement au niveau des performances dans la fonction elle-même.High exclusive counts may indicate a performance bottleneck within the function itself.

  2. Cliquez sur le nom de la fonction pour afficher la vue Informations relatives à la fonction des données de profilage.Click the function name to display the Function Details view of the profiling data. La vue Informations relatives à la fonction présente une vue graphique des données de profilage pour la fonction sélectionnée, en affichant toutes les fonctions qui ont appelé cette fonction et toutes les fonctions appelées par la fonction sélectionnée.The Function Details view presents a graphical view of the profiling data for the selected function, showing all the functions that called that function and all the functions that were called by the selected function.

    • La taille des blocs des fonctions d'appel et des fonctions appelées représente la fréquence relative à laquelle les fonctions ont appelé ou ont été appelées.The size of the blocks of the calling and called functions represent the relative frequency that the functions called or were called.

    • Vous pouvez cliquer sur le nom d'une fonction d'appel ou d'une fonction appelée afin de la sélectionner dans la vue Informations relatives à la fonction.You can click the name of a calling or called function to make it the selected function of the Function Details view.

    • Le volet inférieur des fenêtres Informations relatives à la fonction affiche le code de la fonction.The lower pane of the Function Details windows displays the function code itself. Si vous examinez le code et recherchez une possibilité d’optimiser ses performances, cliquez sur le nom du fichier source pour ouvrir le fichier dans l’éditeur Visual Studio.If you examine the code and find an opportunity to optimize its performance, click the source file name to open the file in the Visual Studio editor.

  3. Pour continuer votre analyse, retournez à la vue Résumé en sélectionnant Résumé dans la liste déroulante Vue.To continue your analysis, return to the Summary view by selecting Summary from the View drop-down list. Examinez ensuite les fonctions dans Fonctions faisant le plus de travail individuel.Then examine the functions in Functions Doing the Most Individual Work. Cette liste affiche les fonctions avec les échantillons exclusifs les plus élevés.This list displays the functions with the highest exclusive samples. Le code du corps de fonction de ces fonctions a effectué un travail significatif et vous pouvez peut-être l'optimiser.The code in the function body of these functions performed significant work and you might be able to optimize it. Pour approfondir l’analyse d’une fonction particulière, cliquez sur le nom de la fonction afin de l’afficher dans la vue Informations relatives à la fonction.To further analyze a particular function, click the function name to display it in the Function Details view.

    Liste des fonctions effectuant le plus de travailList of functions doing the most work

    Pour continuer votre examen de l’exécution du profilage, vous pouvez réanalyser un segment des données de profilage en utilisant la chronologie dans la vue Résumé afin d’afficher le Chemin réactif et les Fonctions faisant le plus de travail individuel d’un segment sélectionné.To continue your investigation of the profiling run, you can reanalyze a segment of the profiling data by using the timeline in the Summary view to show you the Hot Path and Functions Doing Most Individual Work from a selected segment. Par exemple, si vous vous concentrez sur un pic plus petit dans la chronologie, vous pouvez noter des arborescences des appels coûteuses et des fonctions qui n’étaient pas affichées dans l’analyse de l’exécution du profilage toute entière.For example, focusing on a smaller peak in the timeline might reveal expensive call trees and functions that were not shown in the analysis of the entire profiling run.

    Pour réanalyser un segment, sélectionnez-le dans la zone Chronologie Résumé, puis cliquez sur Filtrer par sélection.To reanalyze a segment, select a segment inside the Summary Timeline box and then click Filter by Selection.

    Chronologie de la vue Résumé de performancePerformance Summary view timeline

  4. Le profileur utilise également un ensemble de règles pour suggérer des façons d'améliorer l'exécution du profilage et pour identifier les éventuels problèmes de performances.The profiler also uses a set of rules to suggest ways of improving the profiling run and to identify possible performance problems. Si un problème est détecté, un avertissement s’affiche dans la fenêtre Liste d’erreurs.If an issue is found, a warning is displayed in the Error List window. Pour ouvrir la fenêtre Liste d’erreurs, cliquez sur Liste d’erreurs dans le menu Affichage.To open the Error List window, on the View menu click Error List.

    • Pour voir quelle fonction a déclenché un avertissement, double-cliquez sur l’avertissement dans la vue Informations relatives à la fonction.To see the function that raised a warning the Function Details view, double-click the warning.

    • Pour afficher des informations détaillées sur l’avertissement, cliquez avec le bouton droit sur l’erreur, puis cliquez sur Afficher l’aide sur l’erreur.To view detailed information about the warning, right-click the error and then click Show Error Help

Étape 3 : Réviser le code et réexécuter une sessionStep 3: Revise code and rerun a session

Après avoir recherché et optimisé une ou plusieurs fonctions, vous pouvez répéter l'exécution du profilage et comparer les données pour afficher les différences de performances de votre application suite aux modifications que vous avez apportées.After you find and optimize one or more functions, you can repeat the profiling run and compare the data to see the difference that your changes have made to the performance of your application.

Pour réviser le code et réexécuter le profileurTo revise code and rerun the profiler

  1. Modifiez votre code.Change your code.

  2. Pour ouvrir l’Explorateur de performances, dans le menu Déboguer, cliquez sur Profileur, sur Explorateur de performances, puis sur Afficher l’Explorateur de performances.To open the Performance Explorer, on the Debug menu click Profiler, then Performance Explorer and then click Show Performance Explorer.

  3. Dans l’Explorateur de performances, cliquez avec le bouton droit sur la session que vous voulez réexécuter, puis cliquez sur Démarrer avec le profilage.In the Performance Explorer, right-click the session that you want to rerun, and then click Launch with Profiling.

  4. Une fois que vous avez réexécuté la session, un autre fichier de données est ajouté au dossier Rapports de la session dans l’Explorateur de performances.After you rerun the session, another data file is added to the Reports folder for the session in Performance Explorer. Sélectionnez les données de profilage d’origine et les nouvelles données de profilage, cliquez avec le bouton droit sur la sélection, puis cliquez sur Comparer les rapports de performances.Select both the original and new profiling data, right-click the selection, and then click Compare Performance Reports.

    Une nouvelle fenêtre de rapport s'ouvre et affiche les résultats de la comparaison.A new report window opens, displaying the results of the comparison. Pour plus d’informations sur l’utilisation de la vue de comparaison, consultez Guide pratique pour comparer des fichiers de données du profileur.For more information about how to use the comparison view, see How to: Compare performance data files.

Voir aussiSee also

Explorateur de performances Performance Explorer
Bien démarrer Getting started
Vues d’ensembleOverviews
Profilage dans Visual StudioProfiling in Visual Studio
Visite guidée des fonctionnalités de profilageProfiling feature tour