Pyston 2 hiji palaksanaan Python sareng kompiler JIT

Saatos tilu taun ngabantosan dina pamekaran, peluncuran proyék Pyston 2 parantos diterbitkeun, naon anu kuring ngembangkeunkana palaksanaan performa tinggi bahasa Python ngagunakeun pamekaran proyék LLVM.

Palaksanaanna nangtung pikeun panggunaan téknologi kompilasi JIT modéren sareng tujuanna pikeun ngahontal performa tinggi sami sareng bahasa sistem tradisional sapertos C ++.

Kodeu tina vérsi sateuacana ku Pyston disebarkeun dina lisénsi Apache, tapi kode Pyston 2 teu acan aya sareng ngan siap pakean anu dileupaskeun pikeun Ubuntu 18.04 sareng 20.04 (file kalayan kode na sayogi kanggo diunduh tapi ngan ukur aya batang informasi anu proyékna masih ditutup) .

Nyebarkeun kode mangrupikeun bagian tina rencana pangembangtapi ieu bakal dilakukeun saatos formasi modél bisnis parantos réngsé tina perusahaan anyar sareng diputuskeun pikeun neraskeun ngembangkeun Pyston tanpa dukungan finansial ti Dropbox.

Ngeunaan Pyston 2

Beda sareng vérsi anu sateuacanna Pyston 2 ditandaan stabil sareng sanés salaku vérsi percobaan. Seueur padamelan anu dilakukeun pikeun ngaoptimalkeun kinerja sareng Pyston 2 ayeuna langkung gancang tibatan aslina Python 3.8 sakitar 20% nalika ngalirkeun uji coba python-macrobenchmarks.

Keuntungan kinerja anu paling kasohor katingali dina beban aplikasi wéb anu alami. Dina tés anu misah sapertos chaos.py sareng nbody.py, Pyston 2 ngungkulan Python 3.8 ku faktor 2. Biaya ngagunakeun JIT mangrupikeun paningkatan sakedik dina konsumsi mémori.

Kami bungah pisan ngaleupaskeun Pyston v2, palaksanaan anu langkung gancang sareng cocog pikeun pamrograman Python. Versi 2 20% langkung gancang tibatan standar Python 3.8 dina makrobenchmarks urang. Langkung penting, éta sigana langkung gancang dina kode anjeun. Pyston v2 tiasa ngirangan biaya sérver, ngirangan latency pangguna, sareng ningkatkeun produktivitas pangembang.

Pyston v2 gampang dilaksanakeun, janten upami anjeun milari performa Python anu langkung saé, kami nyarankeun yén anjeun kedah lima menit sareng nyobian Pyston. Ngalakukeunana mangrupikeun salah sahiji cara paling gampang pikeun nyepetkeun proyek anjeun.

Dina hal kasaluyuan kalayan Python asli, proyék Pyston disebut-sebut salaku palaksanaan alternatif anu paling cocog pikeun CPython, Kusabab Pyston mangrupikeun garpu tina codebase utama CPython.

Pyston ngadukung sadaya fungsi CPython, kalebet C API kanggo ngembangkeun ekstensi C. Pyston asalna dikembangkeun ku Dropbox, anu dina 2017 mutuskeun pikeun ngaeureunkeun pangwangunan internal. Dina awal taun 2020, pamekar luhur Pyston ngadegkeun perusahaanna, lengkep nyiptakeun deui proyék éta, sareng mimiti damel di Pyston sapinuh waktos.

Detil téknis ngeunaan Pyston 2 padding henteu acan disayogikeun, ngan ukur DynASM JIT, cache inline, sareng optimasi CPython umum anu disebatkeun. Versi Pyston sateuacanna nganggo salah sahiji metode JIT dina hiji waktos, sami sareng JIT dina mesin JavaScript modéren.

Dina JIT, kode Python diurai sareng ditarjamahkeun kana perwakilan panengah LLVM (IR, Répréséntasi panengah). Salajengna, Répréséntasi IR diolah dina pangoptimal LLVM sareng diteraskeun ka mesin LLVM JIT pikeun dieksekusi, anu ngarobah Répréséntasi IR kana kode mesin.

Pikeun kéngingkeun inpormasi ngeunaan jinis-jinis variabel pikeun program dina basa Python dinamis, téknik prédiksi probabilistik jinis obyék dianggo, dituturkeun ku klarifikasi ngeunaan pilihan jinis anu leres nalika dijalankeun.

Maka, Pyston teras-terasan ngabeda-beda palaksanaan antara dua cabang: anu gancang, upami tingkat ramalanna dikonfirmasi, sareng anu lalaunan, anu dianggo dina kasus henteu cocog.

Padamelan éta tiasa dilakukeun dina modeu multithreaded, ngamungkinkeun palaksanaan paralel sababaraha thread kode dina basa Python sareng bébas tina konci juru basa global (GIL).

tungtungna upami anjeun hoyong terang langkung seueur perkawis éta, anjeun tiasa mariksa detil na link ieu.


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

Janten kahiji komen

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun.

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.