Pyston febrer 2 implementació de Python amb un compilador JIT

Després d'una pausa de tres anys en el desenvolupament, s'ha publicat el llançament de el projecte Pyston 2, que va desenvolupara una implementació d'alt rendiment de l'llenguatge Python utilitzant els desenvolupaments de el projecte LLVM.

la implementació es destaca per l'ús de tecnologies de compilació JIT modernes i té com a objectiu aconseguir un alt rendiment similar al dels llenguatges de sistema tradicionals com C ++.

El codi de versions anteriors de Pyston es va distribuir sota la llicència d'Apache, Però el codi de Pyston 2 encara no està disponible i només es publiquen compilacions punt per utilitzar per a Ubuntu 18.04 i 20.04 (un arxiu amb el codi està disponible per descarregar però només hi ha un codi auxiliar amb informació que el projecte encara està tancat) .

Publicar el codi és part dels plans dels desenvolupadors, Però això es farà després que s'hagi completat la formació de el model de negoci de la nova empresa i s'hagi decidit seguir desenvolupant Pyston sense el suport financer de Dropbox.

Sobre Pyston 2

A diferència de les versions anteriors, Pyston 2 està marcat com estable i no com a versió de prova. S'ha treballat molt per optimitzar el rendiment i Pyston 2 ara és més ràpid que l'original Python 3.8 en aproximadament un 20% a l'aprovar el conjunt de proves python-macrobenchmarks.

Els guanys de rendiment més notables s'observen en les càrregues de treball inherents a les aplicacions web. En proves separades com chaos.py i nbody.py, Pyston 2 supera Python 3.8 per un factor de 2. El cost d'usar JIT és un lleuger augment en el consum de memòria.

Estem molt emocionats de llançar Pyston v2, una implementació més ràpida i altament compatible de el llenguatge de programació Python. La versió 2 és un 20% més ràpida que la Python 3.8 estàndard en els nostres macrobenchmarks. Més important encara, és probable que sigui més ràpid en el seu codi. Pyston v2 pot reduir els costos de servidor, reduir les latències dels usuaris i millorar la productivitat de l'desenvolupador.

Pyston v2 és fàcil d'implementar, de manera que si està buscant un millor rendiment de Python, us recomanem que es prengui cinc minuts i provi Pyston. Fer-ho és una de les formes més fàcils d'accelerar el seu projecte.

En termes de compatibilitat amb Python natiu, el projecte Pyston es promociona com la implementació alternativa més compatible amb CPython, Ja que Pyston és una bifurcació de el codi base principal de CPython.

Pyston admet totes les funcions de CPython, inclosa l'API C per desenvolupar extensions C. Pyston va ser desenvolupat originalment per Dropbox, que el 2017 va decidir interrompre el desenvolupament intern. A principis de 2020, els principals desenvolupadors de Pyston van fundar la seva empresa, van reinventar per complet el projecte i van començar a treballar en Pyston a temps complet.

Encara no proporcionen detalls tècnics sobre el farciment de Pyston 2, només s'esmenten DynASM JIT, emmagatzematge en memòria cau en línia i optimitzacions generals de CPython. La versió anterior d'Pyston usava un JIT de mètode alhora, similar a l'JIT dels motors JavaScript moderns.

En JIT, el codi de Python es va analitzar i es va traduir a una representació intermèdia LLVM (IR, Representació intermèdia). A més, la representació IR es va processar en l'Optimitzador LLVM i es va passar per la seva execució a l'motor LLVM JIT, que va convertir la representació IR en codi de màquina.

Per obtenir informació sobre els tipus de variables per programes en el llenguatge dinàmic Python, es va utilitzar la tècnica de predicció probabilística de tipus d'objectes, seguida de l'aclariment de la correcta elecció de l'tipus durant l'execució.

Per tant, Pyston va variar constantment l'execució entre dues branques: la ràpida, quan es confirmen els tipus predits, i la lenta, que s'utilitza en cas d'una discrepància de tipus.

El treball podria realitzar-se en mode multi-procés, permetent l'execució en paral·lel de diversos fils de codi en el llenguatge Python i lliure de el bloqueig global de l'intèrpret (GIL, global interpreter lock).

Finalment si vols conèixer més a l'respecte, Pots consultar els detalls al següent enllaç.


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà.

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

bool (true)