Exercice 1.3 : Identification d'un goulot d'étranglement d'unité d'exécution
Avant de commencer, vous devez terminer l'Exercice 1.2 : Collecte des données d'exécution.
Recherche des goulots d'étranglement d'unité d'exécution dans Vue unité d'exécution
La fenêtre Vue unité d'exécution affiche le statut de toutes les unités d'exécution de votre application et indique précisément les blocages et les conflits au niveau de ces unités.
Pour rechercher des goulots d'étranglement :
- Dans le Moniteur du profilage, cliquez à l'aide du bouton droit de la souris sur une ressource de profilage, puis sélectionnez Ouvrir avec > Vue unité d'exécution. La fenêtre Vue unité d'exécution s'ouvre. En voici un aperçu :
Ce sont les flèches verticales entre les unités d'exécution qui nous intéressent. Elles indiquent qu'une unité d'exécution (celle d'où part la flèche) attend qu'une autre unité d'exécution (celle vers laquelle pointe la flèche) lève un verrouillage.
- Les flèches sont difficiles à distinguer car elles sont trop rapprochées. Pour mieux les voir, passez de l'échelle de temps linéaire par défaut à une échelle de temps pondérée en cliquant sur le bouton Passer à l'échelle de temps compressée
. Celle-ci condense les segments de temps ne comportant aucune activité intéressante d'unité d'exécution. L'affichage est alors modifié ainsi :
- Voici une interprétation de la Vue unité d'exécution :
- Vous noterez que peu de temps après le démarrage du programme, quatre unités d'exécution philo* sont créées. Toutes fonctionnent, puis se mettent en veille, puis se relancent brièvement. A la fin de l'exécution du programme, l'état de toutes les unités est passé à Attente de verrouillage.
Remarque : l'état "Veille" ne s'affiche pas distinctement sur certains systèmes.
- Les unités d'exécution philo* attendent un verrouillage par d'autres unités philo* qui attendent elles aussi un verrouillage. Dans ce cas, il y a blocage : le programme se trouve dans une impasse et ne peut pas continuer.
Remarque : pour afficher des informations spécifiques des demandes de verrouillage, placez votre curseur sur le segment d'unité d'exécution qui attend un verrouillage. Une infobulle apparaît spécifiant le nom du verrouillage et identifiant l'unité d'exécution contenant le verrouillage (l'unité d'exécution bloquante).
- Pour obtenir des informations détaillées sur les segments d'unité d'exécution, affichez la vue Propriétés en sélectionnant Fenêtre > Afficher la vue > Propriétés. Sélectionnez un segment pour afficher ses propriétés.
Vous comprenez désormais pourquoi ce blocage se produit. Vous êtes maintenant prêt à aborder l'Exercice 1.4 : Résolution du goulot d'étranglement d'unité d'exécution.