Pyston 2 buileachadh Python le inneal-cruinneachaidh JIT

Às deidh hiatus trì bliadhna ann an leasachadh, chaidh pròiseact Pyston 2 fhoillseachadh, dè a leasaich migu buileachadh àrd-choileanadh den chànan Python a ’cleachdadh leasachaidhean a’ phròiseict LLVM.

Am buileachadh a ’seasamh a-mach airson cleachdadh theicneòlasan cruinneachaidh JIT an latha an-diugh agus ag amas air àrd-choileanadh a choileanadh coltach ri cànanan siostam traidiseanta mar C ++.

An còd bho dreachan roimhe le Pyston a sgaoileadh fo chead Apache, ach chan eil còd Pyston 2 ri fhaighinn fhathast agus chan eil ach togail deiseil ri leigeil ma sgaoil airson Ubuntu 18.04 agus 20.04 (tha faidhle leis a ’chòd ri fhaighinn airson a luchdachadh sìos ach chan eil ann ach stub le fiosrachadh gu bheil am pròiseact fhathast dùinte).

Tha foillseachadh a ’chòd mar phàirt de phlanaichean an luchd-leasachaidhach thèid seo a dhèanamh às deidh cruthachadh modal gnìomhachais a bhith air a chrìochnachadh den chompanaidh ùr agus chaidh co-dhùnadh leantainn air adhart a ’leasachadh Pyston às aonais taic ionmhais Dropbox.

Mu Pyston 2

Eu-coltach ri dreachan roimhe, tha Tha Pyston 2 air a chomharrachadh seasmhach agus chan ann mar dhreach deuchainn. Chaidh mòran obrach a dhèanamh gus coileanadh a mheudachadh agus tha Pyston 2 a-nis nas luaithe na am Python 3.8 tùsail le mu 20% nuair a thèid e seachad air an t-sreath deuchainn python-macrobenchmarks.

Tha na buannachdan coileanaidh as ainmeil rim faicinn ann an eallach obrach lìn riatanach. Ann an deuchainnean fa leth mar chaos.py agus nbody.py, tha Pyston 2 a ’coileanadh nas fheàrr na Python 3.8 le factar 2. Tha cosgais cleachdadh JIT na àrdachadh beag ann an caitheamh cuimhne.

Tha sinn air leth toilichte Pyston v2 a leigeil ma sgaoil, buileachadh nas luaithe agus gu math co-fhreagarrach air cànan prògramadh Python. Tha an tionndadh 2 20% nas luaithe na am Python 3.8 àbhaisteach anns na comharran macrobench againn. Nas cudromaiche, tha e coltach nas luaithe anns a ’chòd agad. Faodaidh Pyston v2 cosgaisean frithealaiche a lughdachadh, latencies luchd-cleachdaidh a lughdachadh, agus cinneasachd luchd-leasachaidh a leasachadh.

Tha Pyston v2 furasta a bhuileachadh, mar sin ma tha thu a ’coimhead airson coileanadh Python nas fheàrr, tha sinn a’ moladh gun toir thu còig mionaidean agus feuchainn air Pyston. Is e a bhith a ’dèanamh seo aon de na dòighean as fhasa air do phròiseact a luathachadh.

A thaobh co-chòrdalachd le Python dùthchasach, pròiseact Pyston Thathas a ’beantainn ris mar an gnìomh eile as freagarraiche airson CPython, leis gur e forc a th ’ann am Pyston de phrìomh codebase CPython.

Pyston a ’toirt taic do gach gnìomh CPython, a ’toirt a-steach an API C airson leudachadh C. a leasachadh. Chaidh Pyston a leasachadh an toiseach le Dropbox, a cho-dhùin ann an 2017 stad a chuir air leasachadh taobh a-staigh. Tràth ann an 2020, stèidhich prìomh luchd-leasachaidh Pyston a ’chompanaidh aca, rinn iad ath-chruthachadh air a’ phròiseact gu tur, agus thòisich iad ag obair aig Pyston làn-ùine.

Chan eil mion-fhiosrachadh teicnigeach air pleadhadh Pyston 2 air a thoirt seachad fhathast, chan eil ach DynASM JIT, caching inline, agus optimizations CPython coitcheann air an ainmeachadh. Chleachd an dreach roimhe seo de Pyston aon dòigh JIT aig an aon àm, coltach ris an JIT ann an einnseanan JavaScript an latha an-diugh.

Ann an JIT, chaidh an còd Python a parsadh agus eadar-theangachadh gu riochdachadh eadar-mheadhanach LLVM (IR, Riochdachadh eadar-mheadhanach). A bharrachd air an sin, chaidh an riochdachadh IR a phròiseasadh anns an optimizer LLVM agus chaidh a chuir air adhart gu einnsean LLVM JIT airson a chuir gu bàs, a thionndaidh riochdachadh IR gu còd inneal.

Gus fiosrachadh fhaighinn mu na seòrsachan caochladairean airson prògraman anns a ’chànan fiùghantach Python, chaidh an dòigh air ro-innse probabilistic de sheòrsan nithean a chleachdadh, air a leantainn le soilleireachadh air an roghainn cheart den t-seòrsa nuair a chaidh a chur gu bàs.

Mar sin, bha Pyston an-còmhnaidh ag atharrachadh a ’ghnìomhachaidh eadar dà mheur: an luath, nuair a thèid na h-ìrean ro-innse a dhearbhadh, agus an slaodach, a thathas a’ cleachdadh gun fhios nach bi mì-chothromachadh de sheòrsa ann.

Dh ’fhaodadh an obair a bhith air a dhèanamh ann am modh multithreaded, a ’ceadachadh grunn snàithlean còd a chuir an gnìomh ann an cànan Python agus an-asgaidh bho ghlas eadar-theangair na cruinne (GIL).

Mu dheireadh ma tha thu airson tuilleadh fhaighinn a-mach mu dheidhinn, faodaidh tu sgrùdadh a dhèanamh air mion-fhiosrachadh anns an ceangal a leanas.


Tha susbaint an artaigil a ’cumail ri na prionnsapalan againn de moraltachd deasachaidh. Gus aithris a dhèanamh air mearachd cliog an seo.

Bi a 'chiad fhear a thog beachd

Fàg do bheachd

Seòladh-d cha tèid fhoillseachadh. Feum air achaidhean air an comharrachadh le *

*

*

  1. Uallach airson an dàta: Miguel Ángel Gatón
  2. Adhbhar an dàta: Smachd air SPAM, riaghladh bheachdan.
  3. Dìleab: Do chead
  4. Conaltradh an dàta: Cha tèid an dàta a thoirt do threas phàrtaidhean ach a-mhàin fo dhleastanas laghail.
  5. Stòradh dàta: Stòr-dàta air a chumail le Occentus Networks (EU)
  6. Còraichean: Aig àm sam bith faodaidh tu am fiosrachadh agad a chuingealachadh, fhaighinn air ais agus a dhubhadh às.