Analyse des performances

Un programme est lent alors que l'utilisation du CPU n'est que d'environ 20 %. Quelle est la cause la plus probable ?

  1. ALe calcul du CPU est trop rapide
  2. BLe programme comporte trop peu d'instructions
  3. CLe programme passe beaucoup de temps à attendre sans utiliser le CPU : entrées-sorties disque ou réseau, attente de verrous, etc.
Afficher la réponse et l'explication

Réponse : C. Le programme passe beaucoup de temps à attendre sans utiliser le CPU : entrées-sorties disque ou réseau, attente de verrous, etc.

Si le programme est lent malgré une faible utilisation du CPU, l'essentiel du temps est passé à attendre quelque chose en dehors du CPU : lectures et écritures disque, réponses réseau, libération d'un verrou détenu par un autre thread, etc. Dans ce cas, accélérer le CPU ou optimiser le code de calcul n'a presque aucun effet. Il est efficace de regrouper les entrées-sorties, de les rendre asynchrones pour avancer d'autres traitements pendant l'attente, ou de réduire la portée des verrous.

S'entraîner sur ce thème Retour au thème

Autres questions sur Analyse des performances

  1. Pour déterminer si un programme est limité par le calcul ou par la mémoire, on mesure le temps d'exécution en faisant varier la fréquence du CPU. Quel résultat obtient-on en général si le programme est limité par la mémoire ?
  2. Dans le modèle Roofline, lorsqu'un traitement se situe dans la région limitée par la bande passante mémoire, quelle orientation est correcte pour améliorer les performances ?
  3. Que mesure principalement le benchmark STREAM ?
  4. Quelle est la méthode la plus appropriée pour étudier la scalabilité d'un programme parallèle ?
  5. Une exécution parallèle sur 8 cœurs est 6 fois plus rapide que sur 1 cœur. Quelle est l'efficacité parallèle ?

Comparatifs sur ce thème