Pyston-lite, JIT compiler kanggo stock Python ngenalaken

Pengembang proyek Pyston, sing nawakake implementasi kinerja dhuwur saka basa Python sing nggunakake teknologi kompilasi JIT modern, wis ngenalake extension Pyston-lite kanthi implementasine compiler JIT kanggo CPython. Yen Pyston minangka cabang saka basis kode CPython lan berkembang kanthi kapisah, banjur Pyston-lite dirancang minangka ekstensi universal sing dirancang kanggo nyambung menyang interpreter Python biasa (CPython).

Pyston-lite ngidini sampeyan nggunakake teknologi Pyston dhasar tanpa ngganti interpreter, kanthi nginstal ekstensi tambahan nggunakake manajer paket PIP utawa Conda. Pyston-lite wis dadi tuan rumah ing repositori PyPI lan Conda, lan kanggo nginstal, mung mbukak printah "pip install pyston_lite_autoload" utawa "conda install pyston_lite_autoload -c pyston". Rong paket disaranake: pyston_lite (JIT langsung) lan pyston_lite_autoload (apa substitusi JIT otomatis nalika miwiti proses Python). Sampeyan uga bisa kanggo programmatically kontrol mbisakake JIT saka ing aplikasi tanpa nginstal modul autoload, nggunakake fungsi pyston_lite.enable ().

Sanajan Pyston-lite ora nutupi kabeh optimizations kasedhiya ing Pyston, nggunakake ngidini kanggo babagan 10-25% dandan kinerja liwat Python biasa 3.8. Ing mangsa, kita rencana port paling saka optimizations saiki ing Pyston kanggo Pyston-lite, uga ngembangaken versi didhukung CPython (rilis pisanan mung ndhukung Python 3.8). Saka rencana sing luwih global, ana kerja sama karo tim CPython babagan implementasi API anyar kanggo JIT, sing ngidini kontrol luwih lengkap babagan karya Python. Ngrembug Gawan saka owah-owahan ngajokaken ing Python 3.12 cabang. Saenipun, kamungkinan kanggo nransfer kabeh fungsi saka Pyston kanggo extension dianggep, kang bakal ngidini kita adoh saka njaga garpu CPython kita dhewe.

Saliyane Pyston-lite, project uga dirilis nganyari kanggo lengkap Pyston 2.3.4 paket, kang kalebu optimizations anyar. Ing test pyperformance, versi 2.3.4 luwih cepet tinimbang release 2.3.3 kanthi kira-kira 6%. Keuntungan kinerja sakabèhé saka CPython kira-kira 66%.

Kajaba iku, kita bisa nyathet optimasi sing dikembangake ing kerangka siklus pangembangan CPython 3.11 ing proyek utama, sing ing sawetara tes ngidini kita nambah kinerja kanthi 25%. Contone, ing CPython 3.11, efisiensi caching status bytecode modul basis wis ditingkatake, sing bakal nyepetake peluncuran skrip kanthi 10-15%. Panggilan fungsi wis digawe cepet banget lan interpreter cepet khusus saka operasi khas wis ditambahake. Karya uga ditindakake kanggo port sawetara optimisasi sing disiapake dening proyek Cinder lan HotPy.

Kajaba iku, ing kerangka proyek nogil, karya ditindakake ing mode mbangun CPython eksperimen tanpa kunci interpreter global (GIL, Global Interpreter Lock), sing ora ngidini akses paralel menyang obyek sing dienggo bareng saka benang sing beda-beda, sing nyegah paralelisasi operasi. ing sistem multi-inti. Minangka solusi liyane kanggo masalah karo GIL, kemampuan kanggo ngubungake GIL kapisah kanggo saben interpreter mlaku ing proses lagi dikembangakΓ© (sawetara interpreter bisa mlaku ing siji proses, nanging efektifitas saka eksekusi paralel dumunung ing GIL).

Source: opennet.ru

Add a comment