Na 'n onderbreking van drie jaar in ontwikkeling, die bekendstelling van die Pyston 2-projek is gepubliseer, wat het ek ontwikkelna 'n hoëprestasie-implementering van die Python-taal gebruik te maak van die ontwikkelinge van die LLVM-projek.
Die implementering staan uit vir die gebruik van moderne JIT-samestellingstegnologieë en is daarop gemik om hoë werkverrigting te bereik soortgelyk aan tradisionele stelseltale soos C ++.
Die kode van vorige weergawes deur Pyston is onder die Apache-lisensie versprei, maar die Pyston 2-kode is nog nie beskikbaar nie en slegs gereed-vir-gebruik-builds word vrygestel vir Ubuntu 18.04 en 20.04 ('n lêer met die kode is beskikbaar om af te laai, maar daar is slegs 'n stompie met inligting dat die projek nog gesluit is) .
Die publisering van die kode is deel van die ontwikkelaars se plannemaar dit sal gedoen word nadat die vorming van sakemodelle voltooi is van die nuwe maatskappy en daar is besluit om voort te gaan met die ontwikkeling van Pyston sonder die finansiële steun van Dropbox.
Oor Pyston 2
Anders as vorige weergawes, Pyston 2 is stabiel gemerk en nie as 'n proefversie nie. Daar is baie werk gedoen om die prestasie te optimaliseer en Pyston 2 is nou met ongeveer 3.8% vinniger as die oorspronklike Python 20 met die toetspakket vir python-macrobenchmarks.
Die opvallendste prestasie-winste word gesien in inherente werklading op die webtoepassing. In aparte toetse soos chaos.py en nbody.py, presteer Pyston 2 beter as Python 3.8 met 'n faktor 2. Die koste van die gebruik van JIT is 'n effense toename in geheueverbruik.
Ons is baie opgewonde om Pyston v2 vry te stel, 'n vinniger en uiters versoenbare implementering van die Python-programmeertaal. Weergawe 2 is 20% vinniger as die standaard Python 3.8 in ons macrobenchmarks. Nog belangriker, dit is waarskynlik vinniger in u kode. Pyston v2 kan bedienerkoste verlaag, gebruikerslaterensies verminder en produktiwiteit van ontwikkelaars verbeter.
Pyston v2 is maklik om te implementeer, dus as u op soek is na beter Python-prestasie, beveel ons aan dat u vyf minute neem en Pyston probeer. Dit is een van die maklikste maniere om u projek te bespoedig.
In terme van verenigbaarheid met inheemse Python, die Pyston-projek word beskou as die mees geskikte alternatiewe implementering vir CPython, aangesien Pyston 'n vurk is van die hoof-CPython-kodebasis.
suier ondersteun alle CPython-funksies, insluitend die C API vir die ontwikkeling van C-uitbreidings. Pyston is oorspronklik ontwikkel deur Dropbox, wat in 2017 besluit het om interne ontwikkeling te staak. Vroeg in 2020 het die topontwikkelaars van Pyston hul onderneming gestig, die projek heeltemal herontdek en voltyds by Pyston begin werk.
Tegniese besonderhede oor Pyston 2-vulling word nog nie verstrek nie, slegs DynASM JIT, inline caching en algemene CPython-optimerings word genoem. Die vorige weergawe van Pyston het een metode JIT op 'n slag gebruik, soortgelyk aan die JIT in moderne JavaScript-enjins.
In JIT is die Python-kode ontleed en vertaal na 'n intermediêre voorstelling LLVM (IR, Intermediêre verteenwoordiging). Verder is die IR-voorstelling verwerk in die LLVM-optimaliseerder en deurgegee aan die LLVM JIT-enjin vir uitvoering, wat die IR-voorstelling in masjienkode omgeskakel het.
Om inligting oor die soorte veranderlikes vir programme in die dinamiese Python-taal te bekom, is die tegniek van waarskynlike voorspelling van objektipes gebruik, gevolg deur die korrekte keuse van die tipe tydens uitvoering.
Daarom het Pyston voortdurend die uitvoering tussen twee takke gewissel: die vinnige, wanneer die voorspelde koerse bevestig word, en die stadige, wat gebruik word in geval van 'n soort wanverhouding.
Die werk kan in multidraadmodus gedoen word, wat die parallelle uitvoering van verskeie kodedrade in die Python-taal moontlik maak en vry is van die globale tolkvergrendeling (GIL).
Uiteindelik as u meer daaroor wil weet, kan u die besonderhede in die volgende skakel.
Wees die eerste om te kommentaar lewer