Compilateurs

Quelle définition de l'optimisation guidée par profil (PGO) est correcte ?

  1. AUne fonction qui remet en forme le code source pour le rendre lisible
  2. BUne fonction où le compilateur choisit aléatoirement plusieurs méthodes d'optimisation et compare les résultats
  3. CRecompiler en utilisant les traces d'exécution obtenues sur des entrées représentatives
Afficher la réponse et l'explication

Réponse : C. Recompiler en utilisant les traces d'exécution obtenues sur des entrées représentatives

En PGO, on exécute d'abord, sur des entrées représentatives, un programme compilé avec des instructions d'instrumentation, et l'on enregistre quelles branches sont souvent empruntées, quelles fonctions souvent appelées, etc. On recompile ensuite avec ces informations, en disposant en ligne droite les chemins fréquents ou en développant en ligne les fonctions souvent appelées, pour une optimisation adaptée à l'usage réel. L'effet s'amenuise si les entrées diffèrent fortement de l'usage réel. Ce n'est ni une mise en forme du source ni un choix aléatoire.

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

Autres questions sur Compilateurs

  1. Quelle optimisation l'optimisation à l'édition de liens (LTO) rend-elle possible ?
  2. En C, le débordement d'un entier signé est un comportement indéfini. Sur cette base, quel code un compilateur optimisant la fonction ci-dessus peut-il générer ?
  3. Parmi les erreurs de programme, laquelle peut être détectée dès la compilation ?
  4. Dans un langage à typage statique, quel est le principal avantage de la vérification des types par le compilateur ?
  5. Qu'utilise-t-on souvent pour exprimer les règles de reconnaissance des lexèmes dans l'analyse lexicale ?

Comparatifs sur ce thème