Ang Pyston 2 isang pagpapatupad ng Python na may isang JIT compiler

Matapos ang isang tatlong-taong pahinga sa pag-unlad, ang paglulunsad ng proyekto ng Pyston 2 ay nai-publish, ano ang nabuo kosa isang mahusay na pagganap na pagpapatupad ng wika ng Python gamit ang mga pagpapaunlad ng proyekto ng LLVM.

Ang pagpapatupad nakatayo para sa paggamit ng mga modernong teknolohiya ng pagtitipon ng JIT at naglalayong makamit ang mataas na pagganap na katulad ng tradisyonal na mga wika ng system tulad ng C ++.

Ang code mula sa mga nakaraang bersyon ni Pyston ay ipinamahagi sa ilalim ng lisensya ng Apache, ngunit ang code ng Pyston 2 ay hindi pa magagamit at ang mga handa na gamitin na build ay inilabas para sa Ubuntu 18.04 at 20.04 (isang file na may code ang magagamit para sa pag-download ngunit mayroon lamang isang maliit na piraso na may impormasyon na ang proyekto ay sarado pa rin) .

Ang pag-publish ng code ay bahagi ng mga plano ng mga developerngunit ito ay gagawin pagkatapos makumpleto ang pagbuo ng modelo ng negosyo ng bagong kumpanya at napagpasyahan na ipagpatuloy ang pagbuo ng Pyston nang walang suporta sa pananalapi ng Dropbox.

Tungkol sa Pyston 2

Hindi tulad ng mga nakaraang bersyon, Ang marka ng Pyston 2 ay matatag at hindi bilang isang trial na bersyon. Maraming gawain ang nagawa upang ma-optimize ang pagganap at ang Pyston 2 ay mas mabilis na ngayon kaysa sa orihinal na Python 3.8 ng halos 20% kapag ipinapasa ang python-macrobenchmarks test suite.

Ang pinaka-kapansin-pansin na mga nakuha sa pagganap ay nakikita sa likas na mga pag-load ng application ng web. Sa magkakahiwalay na mga pagsubok tulad ng chaos.py at nbody.py, ang Pyston 2 ay higit sa Python 3.8 ng isang factor na 2. Ang gastos sa paggamit ng JIT ay isang bahagyang pagtaas sa pagkonsumo ng memorya.

Kami ay nasasabik na palabasin ang Pyston v2, isang mas mabilis at lubos na katugmang pagpapatupad ng wika ng programa ng Python. Ang bersyon 2 ay 20% na mas mabilis kaysa sa karaniwang Python 3.8 sa aming mga macrobenchmark. Mas mahalaga, malamang na mas mabilis ito sa iyong code. Maaaring mabawasan ng Pyston v2 ang mga gastos sa server, mabawasan ang mga latency ng gumagamit, at mapabuti ang pagiging produktibo ng developer.

Madaling ipatupad ang Pyston v2, kaya kung naghahanap ka para sa mas mahusay na pagganap ng Python, inirerekumenda namin na tumagal ka ng limang minuto at subukan ang Pyston. Ang paggawa nito ay isa sa pinakamadaling paraan upang mapabilis ang iyong proyekto.

Sa mga tuntunin ng pagiging tugma kasama ang katutubong Python, ang proyekto ng Pyston ay tinukoy bilang ang pinaka katugmang alternatibong pagpapatupad para sa CPython, dahil ang Pyston ay isang tinidor ng pangunahing CPython codebase.

Pyston Sinusuportahan ang lahat ng mga pag-andar ng CPython, kasama ang C API para sa pagbuo ng mga extension ng C. Ang Pyston ay orihinal na binuo ng Dropbox, na noong 2017 ay nagpasya na ihinto ang panloob na pag-unlad. Noong unang bahagi ng 2020, itinatag ng mga nangungunang developer ng Pyston ang kanilang kumpanya, buong likha ang muling proyekto, at nagsimulang magtrabaho sa buong oras ng Pyston.

Ang mga detalyadong teknikal na detalye sa Pyston 2 padding ay hindi pa ibinigay, ang DynASM JIT lamang, inline caching, at pangkalahatang mga pag-optimize ng CPython ang nabanggit. Ang nakaraang bersyon ng Pyston ay gumamit ng isang pamamaraan na JIT nang paisa-isa, katulad ng JIT sa modernong mga JavaScript engine.

Sa JIT, ang Python code ay na-parse at isinalin sa isang intermediate na representasyon ng LLVM (IR, Intermediate na representasyon). Bukod dito, ang representasyon ng IR ay naproseso sa pag-optimize ng LLVM at ipinasa sa engine ng LLVM JIT para sa pagpapatupad, na kinonekta ang representasyon ng IR sa machine code.

Upang makakuha ng impormasyon sa mga uri ng mga variable para sa mga programa sa pabago-bagong wika ng Python, ginamit ang diskarteng probabilistic na hula ng mga uri ng object, na sinundan ng paglilinaw ng tamang pagpili ng uri habang isinasagawa.

Samakatuwid, Patuloy na iba-iba ng Pyston ang pagpapatupad sa pagitan ng dalawang sangay: ang mabilis, kapag ang hinulaang mga rate ay nakumpirma, at mabagal, na ginagamit sa kaso ng isang uri ng hindi pagtutugma.

Ang trabaho ay maaaring gawin sa multithreaded mode, na pinapayagan ang parallel na pagpapatupad ng maraming mga code thread sa wikang Python at walang pandaigdigang interpreter lock (GIL).

Sa wakas kung nais mong malaman ang tungkol dito, maaari mong suriin ang mga detalye sa sumusunod na link.


Ang nilalaman ng artikulo ay sumusunod sa aming mga prinsipyo ng etika ng editoryal. Upang mag-ulat ng isang pag-click sa error dito.

Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.