Compteurs UC et Windows

Mise à jour : novembre 2007

Le profileur Visual Studio 2008 vous permet de collecter les données de performance générées par le système d'exploitation (compteurs Windows) et celles générées par le processeur (compteurs UC). Vous pouvez également sélectionner un compteur UC comme événement servant à générer des intervalles d'échantillonnage lors du profilage à l'aide d'échantillons.

Compteurs Windows

Les compteurs Windows font partie de l'infrastructure de diagnostics Windows, qui fournit des informations sur les performances du système d'exploitation ou sur une application, un service ou un pilote. Les compteurs Windows dépendent de la configuration de l'ordinateur actuel et peuvent ne pas être disponibles sur d'autres ordinateurs.

Compteurs UC

Les compteurs UC constituent une fonctionnalité de l'UC de l'ordinateur qui permet de stocker le nombre d'événements liés au matériel. Grâce au profileur de Visual Studio 2008, vous pouvez utiliser ces compteurs d'événements en tant qu'intervalle d'échantillonnage ou collecter les compteurs d'événements lors du profilage à l'aide de l'instrumentation.

Les compteurs de performance sont spécifiques de l'UC. Les différents modèles et versions d'une UC peuvent avoir des paramètres de configuration sensiblement différents pour activer le même compteur de performance. Les événements portables du profileur Visual Studio 2008 découplent certains compteurs de performance communs à partir de processeurs spécifiques et permettent de collecter ou d'échantillonner des événements de performance génériques.

Si vous souhaitez compter un événement particulier lors du profilage, par exemple, les échecs du cache L2, l'utilisateur peut générer une session de performance autour de cette source d'événements. Vous pouvez le faire sur toute UC avec un cache L2. La session de performance peut être déplacée d'une plateforme à l'autre sans modification.

Le profileur Visual Studio 2008 continue à prendre en charge des événements particuliers pour une plateforme spécifique. Par exemple, un développeur sur une plateforme Pentium 4 peut vouloir compter des événements spécifiques à l'architecture NetBurst. Cet événement n'est pas portable mais reste disponible au développeur pour une session de performance spécifique sur une plateforme spécifique.

Événements portables et de plateforme

Les événements portables sont un groupe de compteurs non spécifiques à une UC particulière. Tous les autres compteurs sont appelés des événements de plateforme, et peuvent ne pas être pris en charge sur différentes plateformes.

Les compteurs qui servent pour les événements portables et de plateforme sont définis dans des fichiers .XML, où des valeurs spécifiques relatives aux compteurs sont fournies. Il existe plusieurs fichiers pour différentes UC, compte tenu que les données pour les UC Intel et AMD, par exemple, sont différentes. Le profileur Visual Studio 2008 utilise ces informations pour présenter à l'utilisateur des compteurs appropriés, portables et de plateforme, pour la mesure de performance.

Événements portables

Les événements portables contiennent les événements suivants :

Événements généraux

Nom de l'événement

Description de l'événement

Instructions retirées

Indique le nombre d'instructions qui se sont exécutées jusqu'au bout.

Cycles hors interruption

Indique uniquement les cycles dans lesquels le processeur n'est pas arrêté, par exemple, en attente d'une E/S.

Événements frontaux

Nom de l'événement

Description de l'événement

Échecs dans ITLB

Indique le nombre d'échecs pour les recherches de tampons de traduction d'instruction (ITLB, Instruction Translation Look-aside Buffer).

Événements de branche

Nom de l'événement

Description de l'événement

Branches retirées

Indique le nombre d'instructions de branche qui se sont exécutées jusqu'au bout.

Branches mal prédites

Indique les branches mal prédites qui se produisent parce que le processeur prédisait un chemin d'accès inexact. Les branches mal prédites diminuent les performances, car le processeur doit annuler tout le travail effectué et redémarrer sur un chemin d'accès correct.

Événements de la mémoire :

Nom de l'événement

Description de l'événement

Échecs de lecture dans le cache de 2ème niveau

Indique le nombre d'échecs de lecture dans le cache de 2ème niveau.

Références de lecture dans le cache de 2ème niveau

Indique le nombre de références de lecture dans le cache de 2ème niveau. Il inclut les échecs de chargement ainsi que les échecs et réussites du RFO (Read For Ownership).

Événements Pentium IV

Les événements Pentium IV contiennent les événements suivants :

Événements de la mémoire :

Nom de l'événement

Description de l'événement

Conflits d'alias 64 Ko

Indique le nombre de conflits d'alias 64 Ko. Les conflits se produisent lorsqu'une adresse de mémoire virtuelle référence une ligne de cache qui est à modulo 64 Ko d'une autre ligne de cache qui réside déjà dans le cache L1.

Déplacement vers une page dû à un défaut du DTLB

Indique le nombre de requêtes pour un déplacement vers une page en raison d'un échec du tampon de traduction de données (DTLB, Data Translation Look-aside Buffer). Un déplacement vers une page dû à un défaut du DTLB génère une erreur de page afin que le système d'exploitation puisse charger la page requise dans les tables.

Échecs de lecture dans le cache de 3ème niveau

Indique le nombre d'échecs de lecture dans le cache de 3e niveau. Il inclut les échecs qui se produisent en raison d'un chargement et du RFO (Read For Ownership).

Références de lecture dans le cache de 3ème niveau

Indique le nombre de références de lecture dans le cache de 3e niveau. Il inclut les échecs de chargement ainsi que les échecs et réussites du RFO (Read For Ownership).

Tous les chargements MOB par relecture

Indique le nombre des instructions de chargement qui ont rencontré des relectures de mémoire par ordre de tampon (MOB, memory order buffer) parce que les restrictions de transfert « stockage pour charge » n'ont pas été respectées.

Fragments Charge/Stockage terminés

Indique le nombre des fragments Charge/Stockage. Les fractionnements de données réduisent les performances parce qu'ils forcent le processeur à lire/écrire deux lignes de cache séparément avant de recoller les deux parties du bloc de données.

Événements frontaux :

Nom de l'événement

Description de l'événement

Déplacement vers une page dû à un défaut du ITLB

Indique le nombre de requêtes de déplacement vers une page dû à un défaut du ITLB.

Références ITLB

Indique l'accès au cache ITLB.

Événements de branche :

Nom de l'événement

Description de l'événement

Échecs des recherches dans le cache de traces

Indique le temps nécessaire pour décoder les instructions et générer un suivi en raison de l'échec d'une recherche dans le cache de traces.

Unité en virgule flottante :

Nom de l'événement

Description de l'événement

Micro-opérations MMX 64 bits retirées

Indique le nombre de micro-opérations MMX 64 bits retirées. Une instruction assembleur peut se décomposer en plusieurs micro-opérations.

Micro-opérations SIMD X87 retirées

Indique le nombre de micro-opérations (Single Instruction Multiple Data) X87 retirées. Une instruction assembleur peut se décomposer en plusieurs micro-opérations.

Micro-opérations de la virgule flottante X87 retirées

Indique le nombre de micro-opérations de la virgule flottante X87 retirées. Une instruction assembleur peut se décomposer en plusieurs micro-opérations.

Micro-opérations de simple précision compressées retirées

Indique le nombre de micro-opérations de simple précision compressées retirées. Des instructions supplémentaires sont requises pour décompresser les données.

Micro-opérations scalaires de simple précision retirées

Indique le nombre de micro-opérations scalaires de simple précision retirées.

Micro-opérations de double précision compressées retirées

Indique le nombre de micro-opérations de double précision compressées retirées. Des instructions supplémentaires sont nécessaires pour décompresser les données.

Micro-opérations scalaires de double précision retirées

Indique le nombre de micro-opérations scalaires de double précision retirées.

Micro-opérations MMX 128 bits retirées

Indique le nombre de micro-opérations MMX 128 bits retirées. Une instruction assembleur peut se décomposer en plusieurs micro-opérations.

Aide à l'entrée SSE

Indique le nombre d'indices nécessaires à la gestion d'une condition d'exception pour les opérations en virgule flottante SSE/SSE2.

Consultation des compteurs disponibles

Kit de développement Visual Studio UI

Pour consulter la liste de tous les compteurs de performance d'UC pris en charge sur la plateforme actuelle, ouvrez les pages des propriétés de la session de performance et effectuez l'une des opérations suivantes :

  • Sélectionnez Échantillonnage, puis sélectionnez Compteurs de performance dans la liste Événement d'échantillon.

    - ou -

  • Sélectionnez Compteurs UC, puis sélectionnez Collecter les compteurs UC.

Pour afficher la liste des compteurs de performance Windows pris en charge sur la plateforme actuelle, ouvrez la page des propriétés de la session de performance, puis sélectionnez Compteurs Windows.

Ligne de commande

Utilisez l'option /querycounters de VSPerfCmd.exe pour imprimer la liste de tous les compteurs de performance d'UC pris en charge sur la plateforme actuelle.

Voir aussi

Tâches

Comment : choisir des événements d'échantillonnage

Comment : collecter les données des compteurs UC

Comment : collecter les données des compteurs Windows

Autres ressources

Vues d'ensemble (outils de profilage)