Partager via


Référence : Vues windows Analyseur de performances

Les outils Build Insights C++ sont disponibles dans Visual Studio 2019 et versions ultérieures. Pour afficher la documentation sur cette version, définissez le contrôle de sélecteur de version de Visual Studio pour cet article sur Visual Studio 2019 ou version ultérieure. Il se trouve en haut de la table des matières de cette page.

Cet article fournit des détails sur chacune des vues Build Insights C++ disponibles dans Windows Analyseur de performances (WPA). Utilisez cette page pour rechercher :

  • descriptions des colonnes de données ; et
  • présélections disponibles pour chaque affichage, y compris leur utilisation prévue et le mode d’affichage préféré.

Si vous débutez avec WPA, nous vous recommandons de vous familiariser avec les principes de base de WPA pour C++ Build Insights.

Explorateur de builds

La vue Explorateur de builds est utilisée pour :

  • diagnostiquer les problèmes de parallélisme,
  • déterminer si votre temps de génération est dominé par l’analyse, la génération de code ou la liaison, et
  • identifier les goulots d’étranglement et les activités de génération inhabituellement longues.

Afficher les colonnes de données de l’Explorateur de build

Nom de la colonne Description
BuildTimelineDescription Description textuelle de la chronologie sur laquelle se produit l’activité ou la propriété actuelle.
BuildTimelineId Identificateur de base zéro pour la chronologie sur laquelle l’activité ou la propriété actuelle se produit.
Composant Composant compilé ou lié lorsque l’événement actuel a été émis. La valeur de cette colonne est <Invocation X Info> lorsqu’aucun composant n’est associé à cet événement. X est un identificateur numérique unique pour l’appel en cours d’exécution au moment de l’émission de l’événement. Cet identificateur est identique à celui de la colonne InvocationId pour cet événement.
Count Nombre d’activités ou de propriétés représentées par cette ligne de données. Cette valeur est toujours 1 et n’est utile que dans les scénarios d’agrégation lorsque plusieurs lignes sont regroupées.
ExclusiveCPUTime Durée du processeur en millisecondes utilisée par cette activité. Le temps passé dans les activités enfants n’est pas inclus dans ce montant.
ExclusiveDuration Durée de la milliseconde de l’activité. La durée des activités enfants n’est pas incluse dans ce montant.
InclusiveCPUTime Durée du processeur en millisecondes utilisée par cette activité et toutes les activités enfants.
InclusiveDuration Durée de la milliseconde de cette activité, y compris toutes les activités enfants.
InvocationDescription Description textuelle de l’appel dans lequel cet événement s’est produit. La description inclut s’il s’agissait de cl.exe ou de link.exe et d’un identificateur d’appel numérique unique. Le cas échéant, il inclut le chemin complet du composant compilé ou lié pendant l’appel. Pour les appels qui ne créent aucun composant ou pour ceux qui créent plusieurs composants, le chemin d’accès est vide. L’identificateur d’appel est identique à celui de la colonne InvocationId.
InvocationId Identificateur numérique unique pour l’appel dans lequel cet événement s’est produit.
Nom Nom de l’activité ou de la propriété représentée par cet événement.
Temps Horodatage qui identifie le moment où l’événement s’est produit.
Outil Outil en cours d’exécution lorsque cet événement s’est produit. La valeur de cette colonne est CL ou Link.
Type Type de l’événement actuel. Cette valeur est l’activité ou la propriété.
Valeur Si l’événement actuel est une propriété, cette colonne contient sa valeur. Cette colonne est laissée vide lorsque l’événement actuel est une activité.

Préréglages de l’Explorateur de builds

Nom du préréglage Mode d’affichage préféré Utilisation
Statistiques d’activité Graphique / Tableau Utilisez cette présélection pour afficher les statistiques agrégées pour toutes les activités de l’Explorateur de builds. En mode table, indiquez en un clin d’œil si votre build est dominée par l’analyse, la génération de code ou l’éditeur de liens. Les durées agrégées pour chaque activité sont triées dans l’ordre décroissant. Explorez en développant le nœud supérieur pour trouver facilement les appels qui prennent le plus de temps pour ces activités principales. Si vous le souhaitez, vous pouvez ajuster les paramètres WPA pour afficher des moyennes ou d’autres types d’agrégations. En mode graphique, consultez quand chaque activité est active pendant votre build.
Appels Graphique Faites défiler vers le bas une liste d’appels dans l’affichage graphique trié par heure de début. Vous pouvez l’utiliser avec la vue UC (Sampled) pour rechercher des appels qui s’alignent sur des zones d’utilisation faible du processeur. Détecter les problèmes de parallélisme.
Propriétés d’appel Table Recherchez rapidement des informations clés sur un appel de compilateur ou d’éditeur de liens donné. Déterminez sa version, son répertoire de travail ou la ligne de commande complète utilisée pour l’appeler.
Chronologies Graphique Consultez un graphique à barres de la façon dont votre build a été parallélisée. Identifiez les problèmes de parallélisme et les goulots d’étranglement en un clin d’œil. Configurez WPA pour attribuer différentes significations aux barres en fonction de vos besoins. Choisissez les descriptions d’appel comme dernière colonne groupée pour afficher un graphique à barres codées en couleur de tous vos appels. Il vous aide à identifier rapidement les coupables fastidieux. Ensuite, effectuez un zoom avant et choisissez le nom de l’activité comme dernière colonne groupée pour afficher les parties les plus longues.

Fichiers

La vue Fichiers est utilisée pour :

  • déterminer quels en-têtes sont inclus le plus souvent, et
  • vous aider à déterminer ce qu’il faut inclure dans un en-tête précompilé (PCH).

Colonnes de données d’affichage de fichiers

Nom de la colonne Description
ActivityName Activité en cours lorsque cet événement de fichier a été émis. Actuellement, cette valeur est toujours analysée.
BuildTimelineDescription *
BuildTimelineId *
Composant *
Count *
Depth Position de base zéro dans l’arborescence include dans laquelle ce fichier est trouvé. Le comptage commence à la racine de l’arborescence include. La valeur 0 correspond généralement à un fichier .c/.cpp.
ExclusiveDuration *
IncludedBy Chemin d’accès complet du fichier qui incluait le fichier actif.
IncludedPath Chemin d’accès complet du fichier actif.
InclusiveDuration *
InvocationId *
StartTime Horodatage qui représente l’heure à laquelle l’événement de fichier actuel a été émis.
Outil *

* La valeur de cette colonne est la même que dans la vue Explorateur de builds.

Présélections d’affichage de fichiers

Nom du préréglage Mode d’affichage préféré Utilisation
Statistiques Table Consultez les fichiers ayant le temps d’analyse agrégé le plus élevé en examinant la liste dans l’ordre décroissant. Utilisez ces informations pour vous aider à restructurer vos en-têtes ou à décider de ce qu’il faut inclure dans votre PCH.

Functions

La vue Functions permet d’identifier les fonctions avec un temps de génération de code excessivement long.

Fonctions affichent les colonnes de données

Nom de la colonne Description
ActivityName Activité en cours lorsque cet événement de fonction a été émis. Actuellement, cette valeur est toujours CodeGeneration.
BuildTimelineDescription *
BuildTimelineId *
Composant *
Count *
Durée Durée de l’activité de génération de code pour cette fonction.
FunctionName Nom de la fonction qui subit la génération de code.
InvocationId *
StartTime Horodatage qui représente le moment où l’événement de fonction actuel a été émis.
Outil *

* La valeur de cette colonne est la même que dans la vue Explorateur de builds.

Préréglages de la vue Functions

Nom du préréglage Mode d’affichage préféré Utilisation
Statistiques Table Découvrez quelles fonctions ont le temps de génération de code agrégé le plus élevé en examinant la liste dans l’ordre décroissant. Ils peuvent indiquer où votre code surutilise le __forceinline mot clé, ou que certaines fonctions peuvent être trop volumineuses.
Chronologies Graphique Examinez ce graphique à barres pour découvrir l’emplacement et la durée des fonctions qui prennent le plus de temps à générer. Vérifiez s’ils s’alignent sur les goulots d’étranglement dans la vue Explorateur de builds. Si c’est le cas, prenez les mesures appropriées pour réduire leur temps de génération de code et bénéficier de vos temps de génération de build.

Voir aussi

Bien démarrer avec C++ Build Insights
Référence : commandes vcperf
Tutoriel : Concepts de base de Windows Analyseur de performances
Windows Performance Analyzer