Compilateurs

Quelle caractéristique d'un environnement d'exécution utilisant la compilation JIT est correcte ?

  1. ATout le programme est traduit en code machine avant l'exécution puis distribué
  2. BLes parties souvent utilisées sont converties en code machine pendant l'exécution, avec accès aux informations d'exécution
  3. CAucun code machine n'est utilisé, et le bytecode est interprété instruction par instruction indéfiniment
Afficher la réponse et l'explication

Réponse : B. Les parties souvent utilisées sont converties en code machine pendant l'exécution, avec accès aux informations d'exécution

Avec la compilation JIT, le bytecode est d'abord exécuté par interprétation ; lorsqu'une partie souvent exécutée (point chaud) est repérée, elle est compilée en code machine pendant l'exécution. Les informations d'exécution, comme les branches réellement empruntées ou les types effectivement passés, permettent des optimisations audacieuses difficiles en compilation préalable. Un mécanisme de retour à l'interprétation est prévu si les hypothèses s'avèrent fausses. La traduction préalable complète est la compilation anticipée (AOT), l'interprétation seule l'interpréteur pur.

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

Autres questions sur Compilateurs

  1. Quelle est l'architecture de base de LLVM ?
  2. Dans quelle situation utilise-t-on souvent l'option de niveau d'optimisation désactivant l'optimisation (-O0, etc.) ?
  3. Quelle définition de l'optimisation guidée par profil (PGO) est correcte ?
  4. Quelle optimisation l'optimisation à l'édition de liens (LTO) rend-elle possible ?
  5. 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 ?

Comparatifs sur ce thème