Pyston-lite présenté, un compilateur JIT pour Python standard

Les dĂ©veloppeurs du projet Pyston, qui propose une implĂ©mentation hautes performances du langage Python utilisant des technologies modernes de compilation JIT, ont prĂ©sentĂ© l'extension Pyston-lite avec une implĂ©mentation de compilateur JIT pour CPython. Alors que Pyston est une branche de la base de code CPython et se dĂ©veloppe de maniĂšre indĂ©pendante, Pyston-lite est conçu comme une extension universelle destinĂ©e Ă  ĂȘtre connectĂ©e Ă  l'interprĂ©teur Python standard (CPython).

Pyston-lite permet d'utiliser les technologies de base de Pyston sans remplacer l'interprĂ©teur, par l'installation d'une extension supplĂ©mentaire via le gestionnaire de paquets PIP ou Conda. Pyston-lite est dĂ©jĂ  disponible dans les dĂ©pĂŽts PyPI et Conda, et pour l'installer, il suffit d'exĂ©cuter la commande « pip install pyston_lite_autoload » ou « conda install pyston_lite_autoload -c pyston ». Deux paquets sont proposĂ©s : pyston_lite (le JIT lui-mĂȘme) et pyston_lite_autoload (qui effectue un chargement automatique du JIT lors du lancement du processus Python). Il est Ă©galement possible de gĂ©rer le JIT de maniĂšre programmatique depuis l'application sans installer le module autoload, en utilisant la fonction pyston_lite.enable().

Bien que Pyston-lite ne couvre pas toutes les optimisations disponibles dans Pyston, son utilisation permet d'augmenter les performances d'environ 10 Ă  25 % par rapport Ă  Python 3.8 standard. Dans le futur, il est prĂ©vu de transfĂ©rer la plupart des optimisations prĂ©sentes dans Pyston vers Pyston-lite, ainsi que d'Ă©largir les versions de CPython prises en charge (la premiĂšre version ne prend en charge que Python 3.8). Parmi les projets plus globaux, une collaboration avec l'Ă©quipe de CPython est envisagĂ©e pour mettre en Ɠuvre de nouvelles API pour le JIT, permettant un contrĂŽle plus complet de l'exĂ©cution de Python. L'inclusion des modifications proposĂ©es dans la branche Python 3.12 est en discussion. IdĂ©alement, il est envisagĂ© de transfĂ©rer toute la fonctionnalitĂ© de Pyston vers l'extension, ce qui permettrait d'abandonner le maintien de notre propre fork de CPython.

En plus de Pyston-lite, le projet a également publié une mise à jour du paquet complet Pyston 2.3.4, qui propose de nouvelles optimisations. Dans le test pyperformance, la version 2.3.4 est environ 6 % plus rapide que la version 2.3.3. Le gain de performance global par rapport à CPython est estimé à 66 %.

On peut Ă©galement souligner les optimisations mises en Ɠuvre dans le cycle de dĂ©veloppement de CPython 3.11, qui ont permis d'augmenter la performance de 25 % dans certains tests. Par exemple, dans CPython 3.11, l'efficacitĂ© du cache de l'Ă©tat du bytecode des modules de base a Ă©tĂ© amĂ©liorĂ©e, ce qui accĂ©lĂ©rera le dĂ©marrage des scripts de 10 Ă  15 %. L'appel de fonctions a Ă©tĂ© considĂ©rablement accĂ©lĂ©rĂ© et des interprĂ©teurs rapides spĂ©cialisĂ©s pour les opĂ©rations de type ont Ă©tĂ© ajoutĂ©s. Un travail est Ă©galement en cours pour transfĂ©rer certaines optimisations dĂ©veloppĂ©es par les projets Cinder et HotPy.

Dans le cadre du projet nogil, un travail est rĂ©alisĂ© sur un mode expĂ©rimental de compilation de CPython sans verrouillage global des interprĂ©teurs (GIL, Global Interpreter Lock), ce qui empĂȘche l'accĂšs simultanĂ© aux objets partagĂ©s depuis diffĂ©rents threads, gĂȘnant ainsi le parallĂ©lisme des opĂ©rations sur des systĂšmes multicƓurs. Une autre solution possible au problĂšme du GIL consiste Ă  lier un GIL distinct Ă  chaque interprĂ©teur exĂ©cutĂ© Ă  l'intĂ©rieur d'un processus (plusieurs interprĂ©teurs peuvent ĂȘtre exĂ©cutĂ©s dans un mĂȘme processus, mais l'efficacitĂ© de leur exĂ©cution parallĂšle est limitĂ©e par le GIL).

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster