• [^] # Re: JIT

    Posté par . En réponse à la dépêche Revue de presse de l'April pour la semaine 20 de l'année 2021. Évalué à 4. Dernière modification le 27 mai 2021 à 10:21.

    Est-ce que ce code compilé serait, à la manière du bytecode intermédiaire, conservé à côté du python pour pouvoir être réutilisé ?

    Je ne pense pas, ce ne serait alors pas du JIT mais un langage compilé classique. Le côté dynamique de Python fait qu’il est difficile de complètement compiler un code Python1 , même avec un compilateur JIT, certaines parties resteront interprétées. D’ailleurs, dans l’article cité par la revue de presse, il est dit que dans un premier temps, les améliorations de performances passeront probablement par une optimisation de l’interpréteur et une possible évolution du bytecode, sans utiliser de compilation JIT. Cette deuxième voie sera seulement explorée une fois que les premières pistes auront déjà porté leurs fruits.

    Est-ce qu'il n'y a pas un risque que la 1ère exécution du code ne soit pas lente à cause de la compilation ?

    Si, c’est pour ça que les interpréteurs avec compilation JIT ont des heuristiques pour décider de compiler ou directement interpréter un bout de (byte)code, en fonction d’un tas de paramètres dont une tentative de deviner s’il va beaucoup être réutilisé par la suite. C’est bien parce-que l’utilisation de la compilation JIT est complexe et n’apporte pas grand chose en performance si elle est mal faite que, dans un premier temps, les gains de performances visés se feront sans utiliser de compilation JIT.


    1. sauf à se restreindre à une sous-partie du langage, regarde les super dépêches sur Pythran sur ton réseau social préféré par exemple.