Piston 2 Jyt kompilyatori bilan Python dasturini amalga oshirish

Uch yillik tanaffusdan so'ng, Piston 2 loyihasining boshlanishi e'lon qilindi, men nimani rivojlantirdimPython tilini yuqori samarali ishlashga LLVM loyihasining ishlanmalaridan foydalangan holda.

Amalga oshirish zamonaviy JIT kompilyatsiya texnologiyalaridan foydalanish bilan ajralib turadi va C ++ kabi an'anaviy tizim tillariga o'xshash yuqori ko'rsatkichlarga erishishni maqsad qilgan.

Oldingi versiyalardagi kod Piston tomonidan Apache litsenziyasi asosida tarqatildi, lekin Piston 2 kodi hali mavjud emas va Ubuntu 18.04 va 20.04 uchun faqat foydalanishga tayyor tuzilmalar chiqarilgan (kodi bo'lgan faylni yuklab olish mumkin, ammo loyiha hali ham yopilganligi haqida ma'lumot mavjud) .

Kodni nashr etish ishlab chiquvchilar rejalarining bir qismidirlekin bu amalga oshiriladi biznes modelini shakllantirish tugagandan so'ng yangi kompaniyaning kompaniyasi va Pyston-ni Dropbox-ning moliyaviy ko'magisiz rivojlantirishni davom ettirishga qaror qilindi.

Piston 2 haqida

Oldingi versiyalardan farqli o'laroq, Piston 2 barqaror deb belgilangan va sinov versiyasi sifatida emas. Python-macrobenchmarks test paketini topshirishda Piston 2 ishlashni optimallashtirish bo'yicha juda ko'p ishlar qilindi va hozirda Python 3.8-dan 20% tezroq.

Ishlashning eng muhim yutuqlari ajralmas veb-ilovalarning ish yuklarida ko'rinadi. Chaos.py va nbody.py singari alohida testlarda Piston 2 Python 3.8 dan 2 baravar yuqori bo'lib, JITdan foydalanish narxi xotira sarfini biroz oshirib yuborish hisoblanadi.

Python dasturlash tilini tezroq va juda mos keladigan Pyston v2-ni chiqarganimizdan juda xursandmiz. 2-versiya bizning makrobenchmarklarimizdagi Python 20 standartidan 3.8% tezroq. Eng muhimi, bu sizning kodingizda tezroq bo'lishi mumkin. Pyston v2 server xarajatlarini kamaytirishi, foydalanuvchi kechikishini kamaytirishi va ishlab chiquvchilar samaradorligini oshirishi mumkin.

Piston v2-ni amalga oshirish oson, shuning uchun Python-ning yaxshiroq ishlashini qidirsangiz, sizga besh daqiqa vaqt ajratishingizni va Pistonga harakat qilib ko'rishingizni tavsiya qilamiz. Buni amalga oshirish loyihangizni tezlashtirishning eng oson usullaridan biridir.

Moslik jihatidan mahalliy Python bilan, Piston loyihasi CPython uchun eng mos alternativ dastur sifatida tanilgan, chunki Piston asosiy CPython kod bazasining vilkasi.

Piston barcha CPython funktsiyalarini qo'llab-quvvatlaydi, shu jumladan C kengaytmalarini ishlab chiqish uchun C API.Piston dastlab Dropbox tomonidan ishlab chiqilgan bo'lib, u 2017 yilda ichki rivojlanishni to'xtatishga qaror qildi. 2020 yil boshida Pistonning eng yaxshi ishlab chiquvchilari o'z kompaniyalariga asos solishdi, loyihani butunlay qayta tikladilar va Pistonda doimiy ishlay boshladilar.

Piston 2 to'ldirish bo'yicha texnik ma'lumotlar hali taqdim etilmagan, faqat DynASM JIT, ichki keshlash va umumiy CPython optimallashtirishlari haqida so'z yuritiladi. Pistonning oldingi versiyasida zamonaviy JavaScript dvigatellaridagi JITga o'xshash bir vaqtning o'zida bitta JIT usuli ishlatilgan.

JIT-da Python kodi tahlil qilindi va tarjima qilindi oraliq vakolatxonaga LLVM (IR, oraliq vakillik). Bundan tashqari, IQ vakili LLVM optimizatorida qayta ishlandi va ijro uchun LLVM JIT dvigateliga o'tdi, bu esa IQ tasvirini mashina kodiga aylantirdi.

Dinamik Python tilidagi dasturlar uchun o'zgaruvchilar turlari to'g'risida ma'lumot olish uchun ob'ekt turlarini ehtimoliy prognozlash texnikasi, so'ngra bajarilish paytida turni to'g'ri tanlashga oydinlik kiritildi.

Shuning uchun, Piston doimiy ravishda ikki shox o'rtasida ijroni turlicha o'zgartirdi: bashorat qilingan stavkalar tasdiqlanganda tezkor va mos kelmaydigan holatda ishlatiladigan sekin.

Ishni ko'p tarmoqli rejimda bajarish mumkin edi, Python tilida va global tarjimon blokirovkasidan (GIL) xoli bo'lgan bir nechta kod satrlarini parallel bajarilishiga imkon beradi.

FINALMENTE bu haqda ko'proq bilmoqchi bo'lsangiz, tafsilotlarni quyidagi havola.


Maqolaning mazmuni bizning printsiplarimizga rioya qiladi muharrirlik etikasi. Xato haqida xabar berish uchun bosing bu erda.

Birinchi bo'lib izohlang

Fikringizni qoldiring

Sizning email manzilingiz chop qilinmaydi.

*

*

  1. Ma'lumotlar uchun javobgardir: Migel Anxel Gaton
  2. Ma'lumotlarning maqsadi: SPAMni boshqarish, izohlarni boshqarish.
  3. Qonuniylashtirish: Sizning roziligingiz
  4. Ma'lumotlar haqida ma'lumot: qonuniy majburiyatlar bundan mustasno, ma'lumotlar uchinchi shaxslarga etkazilmaydi.
  5. Ma'lumotlarni saqlash: Occentus Networks (EU) tomonidan joylashtirilgan ma'lumotlar bazasi
  6. Huquqlar: istalgan vaqtda siz ma'lumotlaringizni cheklashingiz, tiklashingiz va o'chirishingiz mumkin.