Π’ JIT-компиляторС Pyston-lite Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Python 3.10

ДоступСн Π½ΠΎΠ²Ρ‹ΠΉ выпуск Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Pyston-lite, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ JIT-компилятор для CPython. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Pyston, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ обособлСнно ΠΊΠ°ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ CPython, Pyston-lite ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ Python (CPython). Новый выпуск ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ обСспСчСниСм ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²Π΅Ρ‚ΠΎΠΊ Python 3.7, 3.9 ΠΈ 3.10, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ 3.8.

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 позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π΅Π³ΠΎ использованиС Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Pyston-lite Π»Π΅Π³ΠΊΠΎ интСгрируСтся Π² ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ Π² Pyston спСцифичныС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎ возмоТности пСрСнСсСны Π² основной состав CPython. Π’ ΠΎΡ‚Π΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ пСрспСктивС имССтся ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ пСрСнСсти Π² основной состав CPython ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ JIT-компилятора.

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с CPython 3.8 использованиС Pyston-lite позволяСт ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 10% Π² тСкстС macrobenchmarks ΠΈ Π½Π° 28% Π² тСстС pyperformance. Для сравнСния прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ использовании обособлСнного Pyston составляСт 28% ΠΈ 65% соотвСтствСнно.

Π’ грядущий выпуск основного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° CPython 3.11 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ измСнСния, связанныС с ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ состояния Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π°, ускорСниСм Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ быстрых ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ пСрСнСсСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Cinder ΠΈ HotPy. Π’ ΠΈΡ‚ΠΎΠ³Π΅ CPython 3.11rc2 Π² Π²Ρ‹ΡˆΠ΅ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… тСстах дСмонстрируСт прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² 12% ΠΈ 26%, Ρ‡Ρ‚ΠΎ сопоставимо с показатСлями Pyston-lite (Π² Π½ΠΎΠ²ΠΎΠΌ CPython ΠΈ Pyston-lite ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Pyston-lite для CPython 3.11 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΅Ρ‰Ρ‘ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ).

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