Pyston 2 este o implementare a Python cu un compilator JIT

După o pauză de trei ani în dezvoltare, lansarea proiectului Pyston 2 a fost publicată, ce am dezvoltatla o implementare performantă a limbajului Python folosind dezvoltările proiectului LLVM.

Implementarea se remarcă prin utilizarea tehnologiilor moderne de compilare JIT și își propune să obțină performanțe ridicate similare limbajelor de sistem tradiționale precum C ++.

Codul din versiunile anterioare piston a fost distribuit sub licența Apache, dar codul Pyston 2 nu este încă disponibil și numai versiunile gata de utilizat sunt lansate pentru Ubuntu 18.04 și 20.04 (un fișier cu codul este disponibil pentru descărcare, dar există doar un cod cu informații că proiectul este încă închis) .

Publicarea codului face parte din planurile dezvoltatorilordar acest lucru se va face după finalizarea formării modelului de afaceri a noii companii și s-a decis continuarea dezvoltării Pyston fără sprijinul financiar al Dropbox.

Despre Pyston 2

Spre deosebire de versiunile anterioare, Pyston 2 este marcat stabil și nu ca versiune de încercare. S-a făcut multă muncă pentru a optimiza performanța, iar Pyston 2 este acum mai rapid decât versiunea inițială Python 3.8 cu aproximativ 20% când treceți suita de testare python-macrobenchmarks.

Cele mai notabile câștiguri de performanță se văd în sarcinile de lucru inerente ale aplicațiilor web. În teste separate precum chaos.py și nbody.py, Pyston 2 depășește Python 3.8 cu un factor 2. Costul utilizării JIT este o ușoară creștere a consumului de memorie.

Suntem foarte încântați să lansăm Pyston v2, o implementare mai rapidă și extrem de compatibilă a limbajului de programare Python. Versiunea 2 este cu 20% mai rapidă decât Python 3.8 standard din macrobenchmark-urile noastre. Mai important, este probabil mai rapid în codul dvs. Pyston v2 poate reduce costurile serverului, reduce latențele utilizatorilor și poate îmbunătăți productivitatea dezvoltatorilor.

Pyston v2 este ușor de implementat, așa că, dacă căutați performanțe Python mai bune, vă recomandăm să luați cinci minute și să încercați Pyston. A face acest lucru este unul dintre cele mai simple moduri de a vă accelera proiectul.

În ceea ce privește compatibilitatea cu Python nativ, proiectul Pyston este susținut ca cea mai compatibilă implementare alternativă pentru CPython, deoarece Pyston este o furcă a bazei de cod principale CPython.

piston acceptă toate funcțiile CPython, inclusiv API-ul C pentru dezvoltarea extensiilor C. Pyston a fost inițial dezvoltat de Dropbox, care în 2017 a decis să întrerupă dezvoltarea internă. La începutul anului 2020, cei mai buni dezvoltatori Pyston și-au fondat compania, au reinventat complet proiectul și au început să lucreze la Pyston cu normă întreagă.

Detaliile tehnice despre umplerea Pyston 2 nu sunt furnizate încă, sunt menționate doar DynASM JIT, cache inline și optimizări generale CPython. Versiunea anterioară a Pyston folosea o metodă JIT la un moment dat, similară cu JIT în motoarele JavaScript moderne.

În JIT, codul Python a fost analizat și tradus la o reprezentare intermediară LLVM (IR, reprezentare intermediară). Mai mult, reprezentarea IR a fost procesată în optimizatorul LLVM și transmisă motorului LLVM JIT pentru executare, care a convertit reprezentarea IR în codul mașinii.

Pentru a obține informații despre tipurile de variabile pentru programe în limbajul Python dinamic, a fost utilizată tehnica de predicție probabilistică a tipurilor de obiecte, urmată de clarificarea alegerii corecte a tipului în timpul execuției.

Prin urmare, Pyston a modificat în mod constant execuția între două ramuri: rapid, când ratele prezise sunt confirmate, și lent, care este utilizat în cazul unei nepotriviri de tip.

Lucrarea ar putea fi realizată în modul multithread, permițând executarea paralelă a mai multor fire de cod în limbajul Python și liber de blocarea interpretorului global (GIL).

În cele din urmă dacă vrei să afli mai multe despre asta, puteți verifica detaliile în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.