ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Pyston-lite, JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π·Π° стандартния Python

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Pyston, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° високо ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½Π° рСализация Π½Π° Π΅Π·ΠΈΠΊΠ° Python, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° JIT компилация, прСдставиха Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Pyston-lite с рСализация Π½Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π·Π° CPython. Π”ΠΎΠΊΠ°Ρ‚ΠΎ Pyston Π΅ ΠΊΠ»ΠΎΠ½ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° CPython ΠΈ сС Ρ€Π°Π·Π²ΠΈΠ²Π° нСзависимо, Pyston-lite Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ ΠΊΠ°Ρ‚ΠΎ унивСрсално Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с основния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python (CPython).

Pyston-lite позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° основни Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π° Pyston Π±Π΅Π· Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ смяна Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Ρ‡Ρ€Π΅Π· инсталиранС Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ PIP ΠΈΠ»ΠΈ Conda. Pyston-lite Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ Π½Π° PyPI ΠΈ Conda, ΠΈ Π·Π° инсталация Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«pip install pyston_lite_autoloadΒ» ΠΈΠ»ΠΈ Β«conda install pyston_lite_autoload -c pystonΒ». ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ са Π΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°: pyston_lite (нСпосрСдствСно JIT) ΠΈ pyston_lite_autoload (ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ подмяна Π½Π° JIT ΠΏΡ€ΠΈ стартиранС Π½Π° процСса Π½Π° Python). Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° JIT ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π±Π΅Π· нСобходимост ΠΎΡ‚ инсталиранС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° autoload, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ функцията pyston_lite.enable().

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Pyston-lite Π½Π΅ ΠΎΠ±Ρ…Π²Π°Ρ‰Π° всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Pyston, ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° ΠΌΡƒ позволява Π΄Π° сС постигнС повишаванС Π½Π° производитСлността с ΠΎΠΊΠΎΠ»ΠΎ 10-25% Π² сравнСниС с обикновСния Python 3.8. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΏΠΎ-голямата част ΠΎΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ΠΈ Π² Pyston, Π² Pyston-lite, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ вСрсии Π½Π° CPython (ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Ρ€Π΅Π»ΠΈΠΉΠ· ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само Python 3.8). ΠžΡ‚ ΠΏΠΎ-Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ сС отбСлязва ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΅ΠΊΠΈΠΏΠ° Π½Π° CPython Π·Π° рСализация Π½Π° Π½ΠΎΠ²ΠΈ API Π·Π° JIT, позволяващи ΠΏΠΎ-пълСн ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Python. ОбсъТда сС Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠ»ΠΎΠ½Π° Π½Π° Python 3.12. Π’ идСалния случай сС обмисля ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° цялата функционалност ΠΎΡ‚ Pyston Π² Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° собствСн Ρ„ΠΎΡ€ΠΊ Π½Π° CPython.

ОсвСн Pyston-lite, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ прСдставил актуализация Π½Π° цСлия ΠΏΠ°ΠΊΠ΅Ρ‚ Pyston 2.3.4, Π² ΠΊΠΎΠΉΡ‚ΠΎ са ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π½ΠΎΠ²ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ тСста pyperformance вСрсия 2.3.4 Π΅ с ΠΎΠΊΠΎΠ»ΠΎ 6% ΠΏΠΎ-Π±ΡŠΡ€Π·Π° ΠΎΡ‚ 2.3.3. ΠžΠ±Ρ‰ΠΈΡΡ‚ Ρ€ΡŠΡΡ‚ Π² производитСлността Π² сравнСниС с CPython сС оцСнява Π½Π° 66%.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° CPython 3.11 Π² основния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠΈΡ‚ΠΎ Π² някои тСстовС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ…Π° повишаванС Π½Π° производитСлността с 25%. НапримСр, Π² CPython 3.11 Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° СфСктивността Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Π½Π° основнитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ ускори стартиранСто Π½Π° скриптовСтС с 10-15%. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ ускорСн ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ спСциализирани Π±ΡŠΡ€Π·ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° някои ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Cinder ΠΈ HotPy, ΡΡŠΡ‰ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° nogil сС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ€Ρ…Ρƒ СкспСримСнталСн Ρ€Π΅ΠΆΠΈΠΌ Π½Π° компилация Π½Π° CPython Π±Π΅Π· Π³Π»ΠΎΠ±Π°Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° (GIL, Global Interpreter Lock), която ΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ²Π°Π½Π΅ Π½Π° сподСлСни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, затруднявайки ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° многоядрСни систСми. ΠšΠ°Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с GIL сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ GIL към всСки ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, изпълняван Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° процСса (Π² Π΅Π΄ΠΈΠ½ процСс ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ няколко ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Π½ΠΎ СфСктивността Π½Π° тяхното ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС сС Π½Π°Ρ‚ΡŠΠΊΠ²Π° Π½Π° GIL).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster