Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft développe un compilateur JIT open source pour Python
Qui améliore la vitesse du langage et supporte les modules d'extension CPython

Le , par Michael Guilloux

21PARTAGES

6  0 
Pour bon nombre de développeurs, l’association des mots « JIT » et « Python » fait immédiatement penser à PyPy. PyPy est une réimplémentation de Python écrite elle-même en RPython, un sous-ensemble du langage de programmation. Il s’agit d’un interpréteur et un compilateur à la volée (JIT) pour Python qui met l’accent sur la vitesse, l’efficacité et la compatibilité avec l’interpréteur original CPython, écrit en C. CPython est, par défaut, l’implémentation la plus largement utilisée du langage de programmation Python, mais présente certains problèmes de rapidité.

L’un des buts du projet PyPy était donc d’obtenir une implémentation de Python plus rapide que CPython. Ce qui a été atteint depuis la version 1.2. PyPy utilise un compilateur JIT pour accélérer les applications Python. Il fournit un gain de vitesse impressionnant pour de nombreuses applications, mais dans certains cas, la performance attendue n’est pas au rendez-vous et peut-être parfois même pire que CPython. Il n’offre pas non plus le meilleur support pour les modules d’extension CPython. En effet, PyPy ne les supporte pas nativement. D’après Microsoft, « cette incompatibilité peut être critique dans des domaines tels que le calcul scientifique » par exemple, où ces modules sont largement utilisés dans les applications Python. Les utilisateurs de Python concernés par ce problème ne peuvent donc pas pleinement tirer parti de ce compilateur JIT et interpréteur pour Python.

Microsoft veut donc booster la vitesse de Python avec une approche un peu différente. La firme de Redmond a en effet rendu open source Pyjion, un JIT pour Python basé sur son projet CoreCLR. À travers ce nouveau projet open source, Microsoft veut ajouter une interface JIT à CPython de sorte que l’interpréteur soit plus rapide pour Python 3. Contrairement aux alternatives existantes, Pyjion vise donc un meilleur support pour Python 3. Il faut en effet noter que les autres projets d’accélération de Python se focalisent en général sur la branche 2.x.

« Un aspect clé de ce projet est de concevoir une API C pour CPython qui permettra d’ajouter une interface JIT à la VM CPython », explique Microsoft dans la description du projet sur GitHub. « Cela devrait permettre une excellente compatibilité avec les modules d’extension de C qui peut être importante pour certaines sous-communautés Python comme la communauté de calcul scientifique », a-t-elle ajouté. Il faut encore noter que l’ajout d’une interface JIT à CPython signifie qu’il ne s’agira pas de réimplémenter toute la sémantique de Python, mais cela permettra de « tirer parti d’une base de code bien testée sous forme de CPython ». Pyjion étant une preuve de concept JIT utilisant CoreCLR, Microsoft s’attend également à ce que cela conduise à une prolifération des runtimes JIT pour Python, qui vont permettre aux développeurs de choisir un JIT qui correspond le mieux à leur charge de travail.

Source : GitHub

Et vous ?

Que pensez-vous de ce nouveau compilateur à la volée pour Pyhton ? Quels sont ses apports et insuffisances par rapport aux alternatives que vous connaissez ?

Voir aussi :

Microsoft rend open source ChakraCore, la partie fondamentale du moteur JavaScript Chakra qui alimente Microsoft Edge
Node.js accueille ChakraCore, le moteur JavaScript open source de Microsoft avec des gains de performance annoncés

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de TiranusKBX
Expert confirmé https://www.developpez.com
Le 01/02/2016 à 0:42
je parie que le premier endroit ou ce serat déployé seras les services azure de Microsoft
0  0 
Avatar de Max Lothaire
Membre confirmé https://www.developpez.com
Le 01/02/2016 à 13:11
J'avoue que j'ai hâte de voir ce que cela donnera une fois stable.
0  0 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 31/01/2016 à 9:13
Que pensez-vous de ce nouveau compilateur à la volée pour Pyhton ?
Intéressant, Python étant mon langage préférer, sont seul point faible que je lui trouve c'est les performances.

Quels sont ses apports et insuffisances par rapport aux alternatives que vous connaissez ?
Difficile à dire puisque comme expliquer dans l'article y'a pas d'alternative en Python3. Pypy3 j'aimerais bien l'utiliser mais y'a pas numpy porter dessus... Pour utiliser pypy+des bibliothèques standard (comme numpy) faut du python 2.7.

Mais la question que je me pose, es ce que l'interpréteur de MS s'encombre du GIL ou pas ? Du python sans GIL sa serait une vrai révolution... Le multi-processing c'est bien beau mais faut partager dans la mémoire les variables manuellement, et sa marche pas pour certaines bibliothèques (tkinter par exemple).

Dans tous les cas, le passage de 2.7 à 3.0 a vraiment fractionner la communauté python, si on est tous d'accord sur les bienfait des changements apporter à Python 3, la migration est très chaotique.

J'espère que Python4 sera rétro-compatible, comme la fait php7-php 5.6.
0  2