Présentation des méthodes du Profileur de performances

Ce document décrit les méthodes de collecte de données utilisées par les outils du Profileur de performances Visual Studio.

échantillonnage

L’échantillonnage collecte des données statistiques sur le travail effectué par une application pendant le profilage. Il s’agit d’un bon point de départ pour trouver des possibilités d’accélération de l’application. À des intervalles spécifiés, la méthode d'échantillonnage collecte les informations relatives aux fonctions qui s'exécutent dans votre application. La collecte des données s’effectue en recueillant 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 indiquant où le temps a été passé dans l’application. Si vous avez besoin de mesures précises des temps d’appel ou si vous recherchez pour la première fois des problèmes de performances dans une application, vous pouvez utiliser l’échantillonnage.

S’il offre moins de précision dans le nombre d’appels, l’échantillonnage se révèle peu coûteux pour le profileur et n’a qu’un effet limité sur l’exécution de l’application en cours de profilage. L’outil Utilisation du processeur fait partie des outils du Profileur de performances qui utilisent la méthode d’échantillonnage.

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

Suivi

Le traçage fournit de meilleures informations sur la fréquence d’exécution d’une méthode. Utilisez-le si vous avez besoin de mesures précises des numéros d’appel. Il peut avoir un impact plus important sur les performances de votre code pendant la collecte, mais le traitement de l’échantillonnage reste faible. Le traçage peut en outre se révéler plus lent, car l’affichage des données après la collecte prend plus de temps.

Instrumentation

Le profilage d’instrumentation collecte des informations détaillées sur le travail effectué par une application pendant l’exécution du profilage. La collecte de données est effectuée soit par des outils injectant du code dans un fichier binaire qui capture des informations temporelles, soit à l’aide de crochets de rappel permettant de recueillir et d’émettre des informations précises sur l’heure et le nombre d’appels pendant l’exécution d’une application. La méthode d’instrumentation entraîne un traitement élevé par rapport aux approches basées sur l’échantillonnage. Les outils Instrumentation et l’outil Allocation d’objets .NET du Profileur de performances utilisent l’instrumentation.

Comparaison entre l’échantillonnage et l’instrumentation

L’intérêt de l’échantillonnage réside dans le fait qu’il entraîne moins de traitement et qu’il est donc plus susceptible de se révéler statistiquement représentatif de l’application en cours d’exécution en production. À l’inverse, le profilage d’instrumentation permet d’obtenir le nombre exact d’appels des fonctions. Cela fournit des informations beaucoup plus détaillées que l’échantillonnage normal, ce qui peut dans certains cas fausser le temps nécessaire. Par exemple, les fonctions qui ne font pas grand-chose, mais sont appelées fréquemment apparaissent plus souvent que dans un scénario réel.

Avec l’instrumentation, chaque appel de fonction sélectionné dans l’application est annoté et instrumenté. Il est ainsi ajouté à la trace avec des informations sur l’appelant lorsqu’il est appelé. Dans le cas de l’échantillonnage, la pile d’appels en cours d’exécution est interrogée à partir du processeur à intervalles réguliers, puis chaque image est ajoutée à la trace.