Partager via


Analyse des données de performance pour le code Visual C++, Visual C# et Visual Basic dans les applications du Windows Store

Cette rubrique décrit les données de performance du code Visual C++, visual C# et Visual Basic qui est présenté dans les vues du rapport de l'outil de profilage Microsoft Visual Studio Express 2012 pour Windows 8. Pour collecter les données de performance Visual C++, Visual C# et Visual Basic, consultez l'une des rubriques suivantes :

Dans cette rubrique

Cette rubrique contient les sections suivantes :

Ouverture du fichier du rapport de profilage

Types de données de performances

Uniquement mon code

Types de vues du rapport des performances

Vues du rapport des performances

  • Vue Résumé

  • Vue Informations relatives à la fonction

  • Vue Arborescence des appels

  • Vue Appelant/appelé

  • Vues Modules et Fonctions

  • Vue Lignes

Personnalisation des vues de la grille des données

Ouverture du fichier du rapport de profilage

Lorsque vous arrêtez l'exécution d'un profilage de l'IDE Visual Studio, les données de performance s'affichent automatiquement dans un document.

Pour ouvrir un fichier de rapport de profilage (.vspx) généré par l'outil en ligne de commande VSPerf ou qui a été enregistré après une exécution de profilage précédente, procédez comme suit :

  1. Si nécessaire, ouvrez Visual Studio.

  2. Dans le menu Fichier, choisissez Ouvrir un fichier.

  3. Dans la boîte de dialogue Ouvrir un fichier, accédez au dossier contenant le fichier du rapport de profilage, puis sélectionnez le fichier du rapport.

Types de données de performances

Le profileur Visual Studio Express 2012 pour Windows 8 utilise une technique d'échantillonnage pour collecter les données de performance du code Visual C++, visual C# et Visual Basic. À un intervalle basé sur l'horloge du processeur, le profileur capture un instantané des fonctions actives -la pile des appels. Une fonction active sur la pile des appels exécute son propre code ou attend des fonctions appelées pour être exécutées. Pour chaque fonction dans la pile des appels échantillonnée, le profileur assigne des valeurs d'échantillonnage à la fonction comme suit :

  • Si la fonction exécute le code en interne (et non dans une fonction enfant), le nombre d'exemples Inclusif et Exclusif de la fonction est incrémenté.

  • Si la fonction attend une fonction enfant à retourner, seul le nombre d'exemples Inclusif de la fonction est incrémenté.

Les données de profilage pour une fonction incluent le nombre absolu d'exemples collectés pour la fonction et le pourcentage relatif de ces exemples comparé au nombre total d'exemples collectés dans l'exécution du profilage. Les données sont calculées pour deux jeux de valeurs de synchronisation :

  • Les valeurs Inclusif sont calculées à partir du nombre total d'exemples collectés pour une fonction lorsqu'elle est sur la pile des appels, y compris les exemples collectés lorsque des fonctions enfants sont en cours d'exécution. Lorsqu'une pile des appels échantillonnée est analysée, le nombre d'exemples inclusifs de toutes les fonctions dans la pile des appels est incrémenté.

  • Les valeurs Exclusif sont calculées à partir du nombre total d'exemples collectés pour une fonction lorsqu'elle exécute son propre code. Les valeurs exclusives n'incluent pas les exemples collectés lorsque la fonction enfant est en cours d'exécution. Lorsqu'une pile des appels échantillonnée est analysée, le nombre d'exemples exclusifs est incrémenté uniquement pour la fonction qui exécute le code dans la fonction elle-même.

Types de vues du rapport des performances

Les vues du rapport de profilage affichent les données de deux manières :

  • Les vues des graphiques des appels affichent des informations sur les fonctions dans le contexte des chemins d'exécution.

    • L'arborescence Chemin réactif dans la fenêtre Résumé affiche le chemin d'exécution avec le plus grand nombre d'exemples ayant la durée d'exécution du profilage la plus longue.

    • La vue Arborescence des appels est un graphique des appels pour tous les chemins d'exécution qui ont été échantillonnés dans l'exécution du profilage.

    • Les vues Informations relatives à la fonction et Appelant/appelé se concentrent sur une fonction sélectionnée, en affichant les fonctions qui ont appelé la fonction sélectionnée, et les fonctions qu'elles ont appelées.

    Les vues Graphique des appels vous aident à identifier les problèmes de performances dans vos algorithmes.

  • Les vues des listes de fonctions affichent les données de performances relatives aux fonctions dans un tableau. Vous pouvez trier les fonctions en choisissant une colonne de données.

    • La liste Fonctions exigeant le plus de travail individuel sur la page Résumé répertorie les fonctions ayant le plus grand nombre d'exemples exclusifs collectés dans l'exécution du profilage.

    • La vue Modules regroupe les fonctions selon les fichiers .dll ou .exe qui les contiennent.

    • La vue Fonctions est une liste unique de fonctions.

    • La vue Lignes affiche les données de performance pour les instructions des fonctions qui ont été exécutées lorsqu'un échantillon a été collecté.

Naviguez entre les vues en sélectionnant une fonction et en choisissant une nouvelle vue dans la liste déroulante Affichage actuel.

Uniquement mon code

Par défaut, le profileur utilise la fonctionnalité Uniquement mon code lorsqu'il crée des rapports. Lorsque le profileur analyse les informations de la pile des appels, il détermine si une fonction sur la pile des appels est membre de votre code ou membre du code système, tel qu'une méthode dans la bibliothèque de classes de base (BCL) .NET. Lorsque la fonction Uniquement mon code est activée et que la fonction est un appel du code système, l'analyse du profileur ajoute tous les exemples suivants collectés pour la pile des appels aux valeurs inclusives et exclusives du premier appel système. Par conséquent, les appels système sont reportés dans le premier appel système, ce qui permet de se concentrer sur l'optimisation de votre propre code.

Pour modifier le comportement par défaut de la fonction Uniquement mon code et afficher tous les appels des appels système, procédez comme suit :

  1. Dans le menu Outils, choisissez Options.

  2. Dans la boîte de dialogue Options, choisissez Outils d'analyse des performances, puis choisissez Général.

  3. Dans le groupe Uniquement mon code, désactivez la case à cocher Activer Uniquement mon code pour les rapports de profileur (échantillonnage).

Vues du rapport des performances

Hh780914.collapse_all(fr-fr,VS.110).gifVue Résumé

La page Résumé fournit deux vue des données de profilage qui peuvent souvent vous indiquer les meilleurs éléments pour l'optimisation des performances.

  • L'arborescence Chemin réactif indique la pile des appels ayant le plus grand nombre d'exemples dans l'exécution du profilage. Comprendre la raison pour laquelle cet algorithme prend autant de temps peut déboucher sur une optimisation.

  • La liste Fonctions exigeant le plus de travail individuel répertorie les dix fonctions qui ont utilisé le plus de temps exclusif. Vous pouvez obtenir rapidement des gains de performance significatifs en optimisant le code de fonction ou en réduisant le nombre d'appels de ces fonctions.

Pour ouvrir une vue Informations relatives à la fonction, choisissez un nom de fonction en mode Résumé.

Hh780914.collapse_all(fr-fr,VS.110).gifVue Informations relatives à la fonction

Le graphique à barres Distribution des coûts représente les relations entre une fonction que vous sélectionnez et les fonctions d'appel qui ont exécuté la fonction sélectionnée, et entre la fonction sélectionnée et les fonctions appelées par cette fonction.

  • La barre Fonctions d'appel affiche les fonctions qui ont appelé la fonction sélectionnée. La taille d'un bloc d'appel de fonction indique le pourcentage de la durée totale d'exécution de la fonction sélectionnée qui a été provoquée par la fonction d'appel.

  • La barre ///Fonction sélectionnée indique la quantité relative de la durée totale d'exécution que la fonction sélectionnée a consacré à exécuter son propre code (le bloc Corps de la fonction) et la durée passée à exécuter les fonctions appelées par la fonction sélectionnée.

  • La barre Fonctions appelées affiche les fonctions qui ont été appelées par la fonction sélectionnée. La taille d'un bloc de la fonction appelée indique le pourcentage de la durée totale d'exécution de la fonction appelée qui a été consacrée dans la fonction appelée.

Choisissez une fonction appelante ou appelée pour qu'elle devienne la fonction sélectionnée.

Hh780914.collapse_all(fr-fr,VS.110).gifVue Arborescence des appels

Utilisez la vue Arborescence des appels pour explorer les chemins d'exécution empruntés par votre application. La racine de l'arborescence correspond au point d'entrée de l'application. Chaque nœud de fonction répertorie toutes les fonctions appelées et les données de performance liées à ces appels de fonction. Valeurs de la fonction dans la vue Arborescence des appels pour les instances de fonction qui ont été appelées par la fonction parente dans l'arborescence des appels. Les valeurs de pourcentage représentent le rapport entre la durée de la valeur des instances de la fonction et la durée totale d'exécution de l'exécution du profilage.

Pour se concentrer sur un nœud de la vue Arborescence des appels, sélectionnez le nœud, puis choisissez Définir la racine dans le menu contextuel. En définissant le nœud racine, vous supprimez toutes les autres entrées de l'affichage, à l'exception de la sous-arborescence du nœud sélectionné. Pour restaurer le nœud d'origine du nœud racine, choisissez Réinitialiser la racine dans le menu contextuel.

Colonnes de la vue Arborescence des appels

Nom de la colonne

Description

Exemples inclusifs

Nombre d'exemples collectés pour les instances de la fonction qui ont été appelées par la fonction parente dans l'arborescence des appels. Le nombre d'exemples inclut les exemples collectés pour les fonctions appelées par la fonction.

Exemples exclusifs

Nombre d'exemples collectés pour les instances de la fonction qui ont été appelées par la fonction parente dans l'arborescence des appels. Le nombre d'exemples n'inclut pas les exemples collectés pour les fonctions appelées par la fonction.

% des exemples inclusifs

Pourcentage du nombre total d'exemples collectés dans l'exécution du profilage pour les instances de la fonction appelée par la fonction parente. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction.

% exemples exclusifs

Pourcentage du nombre total d'exemples collectés dans l'exécution du profilage pour les instances de la fonction appelée par la fonction parente. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction.

Nom de module

Nom du module (.dll ou .exe) contenant la fonction.

Hh780914.collapse_all(fr-fr,VS.110).gifVue Appelant/appelé

La vue Appelant/appelé est une représentation sous forme d'arborescence des données dans le graphique à barres Distribution des coûts qui inclut tous les détails de minutage. Utilisez la vue Appelant/appelé pour analyser la relation entre une fonction sélectionnée et les fonctions qui l'ont appelée et la fonction qu'elle a appelée. La vue Appelant/appelé se compose de trois grilles.

La Fonction active de la grille centrale affiche les informations de profilage sur la fonction sélectionnée. Les valeurs incluent des exemples de tous les appels de la fonction. La vue Fonctions qui ont appelé la fonction active s'affiche dans la grille supérieure et la vue Fonctions qui ont été appelées par la fonction active s'affiche dans la grille inférieure. Les valeurs de la fonction en cours représentent les totaux de tous les appels échantillonnés de la fonction. Les valeurs des fonctions d'appel et des fonctions appelées et incluent uniquement les exemples collectés pour la fonction lorsqu'elle était appelante ou appelée par la fonction sélectionnée.

Pour parcourir les arborescences des appels d'une fonction, double-cliquez sur une fonction appelante ou appelée. Ainsi, la fonction sélectionnée devient la nouvelle fonction sélectionnée et vous indique ses appelants et fonctions appelées.

Colonnes de la vue Appelant/appelé

Nom de la colonne

Description

Exemples inclusifs

  • Pour la fonction sélectionnée, le nombre total d'exemples collectés pour la fonction sélectionnée. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction sélectionnée.

  • Pour une fonction d'appel, le nombre d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction d'appel qui a appelé la fonction sélectionnée. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction d'appel.

  • Pour une fonction appelée, le nombre d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction appelée par la fonction sélectionnée. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction appelée.

Exemples exclusifs

  • Pour la fonction sélectionnée, le nombre total d'exemples collectés pour la fonction sélectionnée. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction sélectionnée.

  • Pour une fonction d'appel, le nombre d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction d'appel qui a appelé la fonction sélectionnée. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction d'appel.

  • Pour une fonction appelée, le nombre d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction appelée par la fonction sélectionnée. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction appelée.

% des exemples inclusifs

  • Pour la fonction sélectionnée, le pourcentage du nombre total d'exemples collectés dans l'exécution du profilage pour la fonction sélectionnée. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction sélectionnée.

  • Pour une fonction d'appel, le pourcentage du nombre total d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction d'appel qui a appelé la fonction sélectionnée. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction d'appel.

  • Pour une fonction appelée, le pourcentage du nombre total d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction appelée par la fonction sélectionnée. La valeur inclut les exemples collectés pour les fonctions appelées par la fonction appelée.

% exemples exclusifs

  • Pour la fonction sélectionnée, le pourcentage du nombre total d'exemples collectés dans l'exécution du profilage pour la fonction sélectionnée. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction sélectionnée.

  • Pour une fonction d'appel, le pourcentage du nombre total d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction d'appel qui a appelé la fonction sélectionnée. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction d'appel.

  • Pour une fonction appelée, le pourcentage du nombre total d'exemples collectés dans l'exécution du profilage qui ont été collectés pour les instances de la fonction appelée par la fonction sélectionnée. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction appelée.

Hh780914.collapse_all(fr-fr,VS.110).gifVues Modules et Fonctions

Les vues Modules et Fonctions affichent les détails des données de profilage pour les fonctions du rapport de profilage. La vue Modules organise les fonctions JavaScript par fichier source .js qui les contient. D'autres fonctions sont répertoriées par module, tel qu'un fichier .dll. La vue Fonctions répertorie toutes les fonctions sans utiliser de hiérarchie. La recherche de votre propre code dans la vue Modules est souvent plus facile qu'avec la vue Fonctions, mais il peut être plus facile de comparer les fonctions dans la vue Fonctions.

Colonnes des vues Modules et Fonctions

Nom de la colonne

Description

Exemples inclusifs

Le nombre d'exemples collectés lorsque la fonction était dans la pile des appels. Le nombre d'exemples inclut les exemples collectés pour les fonctions appelées par la fonction.

Exemples exclusifs

Nombre d'exemples collectés lorsque la fonction exécutait son propre code. Les exemples exclusifs n'incluent pas les exemples collectés lorsque les fonctions étaient appelées par la fonction en cours d'exécution.

% des exemples inclusifs

Pourcentage du nombre total d'exemples collectés dans l'exécution du profilage lorsque la fonction était dans la pile des appels.

Le numérateur correspond à Échantillons inclusifs de la fonction.

Le dénominateur est le nombre total d'exemples collectés pour l'exécution du profilage.

% exemples exclusifs

Pourcentage du nombre total des exemples collectés dans l'exécution du profilage pour la fonction. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la fonction.

Hh780914.collapse_all(fr-fr,VS.110).gifVue Lignes

La vue Lignes des données d'échantillonnage répertorie les données de performance sur les instructions qui étaient en cours d'exécution lorsque les exemples ont été collectés dans l'exécution du profilage. Dans un fichier source, une instruction peut couvrir plusieurs lignes d'un fichier source, et une ligne unique peut inclure plusieurs instructions.

Nom de la colonne

Description

Exemples inclusifs

Le nombre d'exemples collectés pour la ligne dans l'exécution du profilage. Le nombre d'exemples inclut les exemples collectés pour les fonctions appelées par la ligne.

Exemples exclusifs

Le nombre d'exemples collectés pour la ligne dans l'exécution du profilage. Le nombre d'exemples n'inclut pas les exemples collectés pour les fonctions appelées par la ligne.

% des exemples inclusifs

Pourcentage du nombre total des exemples collectés dans l'exécution du profilage pour la ligne. La valeur inclut les exemples collectés pour les fonctions appelées par la ligne.

% exemples exclusifs

Pourcentage du nombre total des exemples collectés dans l'exécution du profilage pour la ligne. La valeur n'inclut pas les exemples collectés pour les fonctions appelées par la ligne.

Début ligne source

Numéro de la ligne de début dans le fichier source au niveau duquel cet échantillon a été collecté.

Début caractère source

Décalage du caractère de début dans la ligne de fichier source au niveau de laquelle cet échantillon a été collecté.

Fin ligne source

Numéro de ligne de fin dans le fichier source au niveau duquel cet échantillon a été collecté.

Fin du caractère source

Décalage du caractère de fin dans la ligne de fichier source au niveau de laquelle cet échantillon a été collecté.

Personnalisation des vues de la grille des données

Vous pouvez ajouter ou supprimer des colonnes de données et modifier l'ordre d'affichage des colonnes. Ouvrez le menu contextuel pour une ligne d'en-tête de tableau et choisissez Ajouter/Supprimer des colonnes. Activez les cases à cocher des colonnes à afficher, puis désactivez les cases à cocher des colonnes que vous souhaitez masquer. Utilisez les boutons fléchés pour déplacer une colonne sélectionnée.

Autres colonnes de données de profilage

Nom de la colonne

Description

Adresse de la fonction

Adresse de la mémoire de la fonction.

Numéro de ligne de la fonction

Numéro de ligne du début de cette fonction dans le fichier source.

Fichier source

Fichier source contenant la définition pour cette fonction.

Nom de module

Nom du module qui contient la fonction.

Chemin de module

Chemin d'accès du module qui contient la fonction.

ID de processus

ID du processus (PID) de l'exécution du profilage.

Nom du processus

Nom du processus.