Partager via


Comprendre les méthodes de collecte des performances du profileur

Ce document décrit les méthodes de collecte de données utilisées par les outils dans Visual Studio Performance Profiler.

Échantillonnage

L’échantillonnage collecte des données statistiques sur le travail effectué par une application pendant le profilage et constitue un bon point de départ pour trouver des zones pour accélérer votre application. À intervalles spécifiés, la méthode d’échantillonnage collecte des informations sur les fonctions qui s’exécutent dans votre application. La collecte de données est effectuée en collectant des informations sur l’application à intervalles réguliers ou à une fréquence d’échantillonnage, par exemple toutes les millisecondes. Les données collectées sont analysées pour créer un modèle d’emplacement où le temps a été passé dans l’application. Si vous avez besoin de mesures précises des heures d’appel ou que vous recherchez des problèmes de performances dans une application pour la première fois, vous pouvez utiliser l’échantillonnage.

L’échantillonnage a moins de précision dans le nombre d’appels, mais est faible coût pour le profileur et a peu d’effet sur l’exécution de l’application en cours de profilage. Les outils du Profileur de performances qui utilisent la méthode d’échantillonnage incluent l’outil Utilisation du processeur .

Une fois la collecte de données terminée, l’outil Utilisation du processeur analyse les données capturées et affiche le rapport.

Traçage

Le suivi fournit de meilleures informations sur la fréquence à laquelle une méthode a été exécutée. Si vous avez besoin de mesures précises des numéros d’appel, utilisez le suivi. Le suivi peut avoir un impact plus important sur les performances de votre code pendant la collecte, mais l’échantillonnage n’a qu’une petite surcharge. En outre, le suivi peut être plus lent à analyser, car il faut plus de temps pour afficher les données après la collecte.

Instrumentation

Le profilage d’instrumentation collecte des informations détaillées sur le travail effectué par une application pendant un processus de profilage. La collecte de données est effectuée par des outils qui injectent du code dans un fichier binaire qui capture des informations de minutage ou à l’aide de crochets de rappel pour collecter et émettre des informations exactes sur le minutage et le nombre d’appels pendant l’exécution d’une application. La méthode d’instrumentation a une surcharge élevée par rapport aux approches basées sur l’échantillonnage. Les outils du Profileur de performances qui utilisent l’instrumentation incluent les outils d’instrumentation et l’outil d’allocation d’objets .NET .

Échantillonnage et instrumentation

La valeur de l’échantillonnage est qu’elle a moins de surcharge et, pour cette raison, est plus susceptible d’être statistiquement représentative de l’application exécutée en production. La valeur du profilage d’instrumentation réside dans le fait que vous pouvez obtenir le nombre exact de fois que vos fonctions ont été appelées. Cela vous donne des informations beaucoup plus détaillées que l’échantillonnage normal, ce qui peut fausser le temps nécessaire dans certains scénarios. Par exemple, les fonctions qui ne font pas grand-chose, mais qui sont appelées fréquemment, s’affichent plus qu’elles le feraient dans un scénario réel.

Avec l’instrumentation, chaque appel de fonction sélectionné dans votre application est annoté et instrumenté afin que, lorsqu'il est invoqué, il soit ajouté à la trace, accompagné d'informations sur l’appelant. Avec l’échantillonnage, l’exécution de la pile d’appels actuelle est interrogée à partir de l’UC à un intervalle, puis chaque trame est ajoutée à la trace.