ΠŸΡƒΡΠ½Π°Ρ‚ Π΅ Nuitka 4.0, ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π° Python. ΠΠ°ΠΏΡ€Π΅Π΄ΡŠΠΊ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° JIT Π·Π° CPython.

Налично Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Nuitka 4.0, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π·Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° Python скриптовС Π² C прСдставянС, ΠΊΠΎΠ΅Ρ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΎ Π² изпълним Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° libpython Π·Π° максимална ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с CPython (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ собствСни инструмСнти Π½Π° CPython Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ). ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° пълна ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈ вСрсии Π½Π° Python 2.6, 2.7, 3.4 - 3.13. Π’ сравнСниС с CPython, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ скриптовС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ 335% ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ Π½Π° производитСлността Π² тСстовСтС Π½Π° pystone. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° Apache.

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • ВнСсСны измСнСния для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ совмСстимости с Python 3.12, 3.13 ΠΈ 3.14, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ синтаксиса аннотирования Ρ‚ΠΈΠΏΠΎΠ² для ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Ρ… классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования компилятора Zig (zig cc) Π² качСствС бэкСнда Π‘ΠΈ-компилятора Π² Nuitka.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LTO-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ использовании компилятора Clang.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Β«@nuitka_ignoreΒ» для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ компиляции Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ: Β«β€”projectΒ» для сборки с использованиСм настроСк ΠΈΠ· Ρ„Π°ΠΉΠ»Π° pyproject.toml, Β«β€”devel-profile-compilationΒ» для профилирования Π½Π° этапС сборки, Β«β€”debug-self-forkingΒ» для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ„ΠΎΡ€ΠΊ-Π±ΠΎΠΌΠ±, Β«β€”include-windows-runtime-dllsΒ» для ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ C runtime DLL Π² Windows, Β«β€”qt-debug-pluginsΒ» для диагностики Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Qt-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² oracledb, win32ctypes, dask, dataparser, puremagic, pygments.lexers, tomli, av, sentry_sdk, jedi, parso, line_profiler ΠΈ pandas.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ прогрСссС развития JIT-компилятора Π² CPython. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ поставили ΠΏΠ΅Ρ€Π΅Π΄ собой Ρ†Π΅Π»ΡŒ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ JIT ΠΊ выпуску CPython 3.15 Π½Π° 5%, Π° ΠΊ выпуску 3.16 ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 10% ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования JIT Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Free-threading (Π±Π΅Π· глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ). Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии использованиС JIT Π² Π°Π»ΡŒΡ„Π°-сборках CPython 3.15 ΡƒΠΆΠ΅ дСмонстрируСт Π² срСднСм ускорСниС Π½Π° 11-12% Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ macOS AArch64 ΠΈ Π½Π° 5-6% Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ x86_64 Linux ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со стандартным ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ΠŸΡ€ΠΈ этом Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… тСстах ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ JIT ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚ ускорСния Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 100%, Π΄ΠΎ замСдлСния Π½Π° 20%.

 ΠŸΡƒΡΠ½Π°Ρ‚ Π΅ Nuitka 4.0, ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π° Python. ΠΠ°ΠΏΡ€Π΅Π΄ΡŠΠΊ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° JIT Π·Π° CPython.


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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€