Mahalliy Python uchun JIT kompilyatori Pyston-lite taqdim etildi

Zamonaviy JIT kompilyatsiya texnologiyalaridan foydalangan holda Python tilini yuqori samarali amalga oshirishni taklif qiluvchi Pyston loyihasini ishlab chiquvchilari CPython uchun JIT kompilyatorining amalga oshirilishi bilan Pyston-lite kengaytmasini taqdim etdilar. Pyston CPython kod bazasining filiali bo'lib, alohida ishlab chiqilgan bo'lsa-da, Pyston-lite standart Python tarjimoniga (CPython) ulanish uchun mo'ljallangan universal kengaytma sifatida ishlab chiqilgan.

Pyston-lite tarjimonni o'zgartirmasdan, PIP yoki Conda paket menejeri yordamida qo'shimcha kengaytmani o'rnatish orqali Pystonning asosiy texnologiyalaridan foydalanish imkonini beradi. Pyston-lite allaqachon PyPI va Conda omborlarida joylashtirilgan va uni o'rnatish uchun "pip install pyston_lite_autoload" yoki "conda install pyston_lite_autoload -c pyston" buyrug'ini bajarish kifoya. Ikkita paket taklif etiladi: pyston_lite (to'g'ridan-to'g'ri JIT) va pyston_lite_autoload (Python jarayoni boshlanganda avtomatik JIT almashtirishni amalga oshiradi). Bundan tashqari, pyston_lite.enable() funksiyasidan foydalanib, avtomatik yuklash modulini o'rnatmasdan, dasturdan JIT ning kiritilishini dasturiy nazorat qilish mumkin.

Pyston-lite Pyston-da mavjud bo'lgan barcha optimallashtirishlarni qamrab olmasa-da, undan foydalanish oddiy Python 10 bilan solishtirganda ish faoliyatini taxminan 25-3.8% ga oshirishi mumkin. Kelajakda Pyston-da mavjud bo'lgan optimallashtirishlarning aksariyatini Pyston-lite-ga o'tkazish, shuningdek, CPython-ning qo'llab-quvvatlanadigan versiyalarini kengaytirish rejalashtirilgan (birinchi versiya faqat Python 3.8-ni qo'llab-quvvatlaydi). Ko'proq global rejalar Python ishini to'liqroq boshqarish imkonini beruvchi JIT uchun yangi API-larni joriy qilish uchun CPython jamoasi bilan hamkorlikni o'z ichiga oladi. Taklif etilayotgan o'zgarishlarni Python 3.12 filialiga kiritish muhokama qilinmoqda. Ideal holda, Pyston-dan barcha funksiyalarni kengaytmaga o'tkazish imkoniyati ko'rib chiqilmoqda, bu bizga o'z CPython vilkasini saqlab qolishdan qochish imkonini beradi.

Pyston-lite-dan tashqari, loyiha yangi optimallashtirishlarni taklif qiluvchi to'liq huquqli Pyston 2.3.4 to'plamining yangilanishini ham chiqardi. Pyperformance testida 2.3.4 versiyasi 2.3.3 versiyasidan taxminan 6% tezroq. CPython bilan solishtirganda umumiy samaradorlik 66% deb baholanadi.

Bundan tashqari, asosiy loyihada CPython 3.11 ishlab chiqish tsikli doirasida ishlab chiqilgan optimallashtirishlarni qayd etishimiz mumkin, bu esa ba'zi testlarda unumdorlikni 25% ga oshirish imkonini berdi. Masalan, CPython 3.11 da asosiy modullarning bayt-kod holatini keshlash samaradorligi oshirildi, bu esa skriptlarni ishga tushirishni 10-15% ga tezlashtiradi. Funktsiya chaqiruvlari sezilarli darajada tezlashdi va standart operatsiyalarning maxsus tezkor tarjimonlari qo'shildi. Cinder va HotPy loyihalari tomonidan tayyorlangan ba'zi optimallashtirishlarni portlash ishlari ham olib borilmoqda.

Bundan tashqari, nogil loyihasi doirasida CPython-ni global tarjimon blokirovkasisiz (GIL, Global Interpreter Lock) qurishning eksperimental rejimi ustida ish olib borilmoqda, bu turli xil oqimlardan umumiy ob'ektlarga parallel kirishga ruxsat bermaydi, bu ko'p tarmoqli operatsiyalarni parallellashtirishga to'sqinlik qiladi. - asosiy tizimlar. GIL muammosining yana bir yechimi sifatida jarayon doirasida ishlaydigan har bir tarjimonga alohida GIL ulash imkoniyati ishlab chiqilmoqda (bir jarayonda bir nechta tarjimonlar ishlashi mumkin, lekin ularning parallel bajarilishi samaradorligi GILga bog'liq).

Manba: opennet.ru

a Izoh qo'shish