Passer au contenu principal
PIX analyse les données de changement de contexte collectées lors d’une Timing Capture pour calculer le chemin critique d’un événement PIX sélectionné. Le chemin critique est la série d’événements PIX et de dépendances qui, s’ils étaient raccourcis, réduiraient la durée globale de l’événement sélectionné. La figure suivante montre un événement PIX nommé MainLoop 17864 qui contient une quantité importante de temps bloqué au milieu de l’événement. Un événement PIX avec un blocage important En calculant le chemin critique, PIX fournit les informations nécessaires pour réduire le temps bloqué dans l’événement, voire l’éliminer complètement. Pour calculer le chemin critique, cliquez avec le bouton droit sur un événement PIX et choisissez Calculate Critical Path for Selected PIX Event dans le menu contextuel, comme illustré dans la figure suivante. Le chemin critique ne peut être calculé que pour un seul événement à la fois. L'élément de menu contextuel permettant de créer le chemin critique d'un événement PIX PIX affiche le chemin critique de l’événement dans une nouvelle ligne nommée Critical Path: suivie du nom de l’événement. La ligne du chemin critique comble le temps bloqué avec des informations sur les événements PIX, les threads et les cœurs qui s’exécutaient pendant ce temps et qui ont donc contribué au blocage. Des informations sur les changements de contexte et les événements de préparation à l’origine des dépendances entre les événements sont fournies. Les échantillons du processeur peuvent aussi servir à déterminer ce qui s’exécutait si l’ensemble des événements PIX ne fournit pas suffisamment de contexte. La ligne de chemin critique suivante montre qu’une instance de l’événement Loader::Process et plusieurs instances de l’événement TaskWrapper se sont exécutées pendant que MainLoop 17864 était bloqué. La ligne du chemin critique de l'événement MainLoop 17864 Les informations sur les threads et les cœurs affichées en haut de la ligne du chemin critique permettent de voir facilement comment le chemin critique passe d’un thread à l’autre et d’un cœur à l’autre. Informations sur les threads et les cœurs en haut du volet du chemin critique La ligne du chemin critique comprend des données sur les changements de contexte et les événements de préparation qui permettent de déterminer ce qui a provoqué l’exécution des différents événements. Ces informations, ainsi que les données affichées dans les info-bulles, permettent aussi de comprendre pourquoi les événements se sont exécutés dans cet ordre. Dans la figure suivante, la chronologie a été agrandie pour voir ce qui a provoqué le démarrage de l’événement Loader::Process. La sélection de l’événement de préparation à la fin d’un fragment de MainLoop 17864 renseigne la vue Element Details avec une description de l’événement, y compris les piles d’appels pertinentes. Une flèche de corrélation est aussi dessinée. Dans ce cas, Loader::Process a commencé à s’exécuter parce qu’il a été préparé par Main Loop 17864. Le survol de l’indicateur de thread en haut de la ligne du chemin critique affiche une info-bulle qui fournit des informations supplémentaires sur le thread sur lequel LoaderProcess s’exécute, notamment son nom et sa priorité. Analyse d'un événement de préparation dans la ligne du chemin critique Autre exemple : considérez la séquence vers la fin de MainLoop 17864, dans laquelle l’exécution de Loader::Process se termine, suivie d’une série d’événements TaskWrapper et d’un seul événement DoneWorking avant que MainLoop 17864 ne se termine. La sélection des changements de contexte qui provoquent l’exécution de la série d’événements TaskWrapper et de l’événement DoneWorking montre que les deux threads sur lesquels ces événements s’exécutent ont été préparés par le thread Loader, comme illustré dans la figure suivante. Le changement de contexte qui provoque l'exécution du premier thread de travail Le changement de contexte qui provoque l'exécution du second thread de travail Même si la série d’événements TaskWrapper et l’événement DoneWorking s’exécutent sur des threads différents, la ligne du chemin critique les montre s’exécutant en séquence plutôt qu’en parallèle. Les info-bulles affichées lors du survol des indicateurs de thread expliquent pourquoi les deux threads n’ont pas pu s’exécuter en même temps. Dans ce cas, la raison est la contention de cœur. Les deux threads s’exécutent sur le cœur 4 et ont la même priorité (8). La contention de cœur est donc la raison pour laquelle ces événements sont sérialisés. Ajuster les affectations de cœurs ou les priorités des threads permettrait de raccourcir ce chemin critique. La contention de cœur fait que les événements s'exécutent en séquence plutôt qu'en parallèle Une seule ligne de chemin critique est créée. Si une ligne de chemin critique existe déjà et que l’option d’analyse du chemin critique est sélectionnée pour un autre événement, le contenu de la ligne existante est remplacé par les données du chemin critique du nouvel événement. La ligne du chemin critique apparaît souvent en bas de la vue Timeline lors de sa création. Le panneau Lane Configuration permet de déplacer la ligne plus haut, de l’épingler en haut, etc.

Voir aussi

Timing Captures PIX
Dernière modification le 8 octobre 2026