Nuitka 4.0, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป‚เบ›เบฃเปเบเบฃเบกเบ„เบญเบกเป„เบžเบฅเปŒ Python, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปเบฅเป‰เบง. เบ„เบงเบฒเบกเบ„เบทเบšเปœเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ CPython JIT

เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ Nuitka 4.0 เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒ Python scripts เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ C, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ libpython เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบชเบนเบ‡เบชเบธเบ”เบเบฑเบš CPython (เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท CPython เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบงเบฑเบ”เบ–เบธ). เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบเบฑเบšเบเบฒเบ™เบ›เปˆเบญเบเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ Python 2.6, 2.7, 3.4 - 3.13. เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš CPython, scripts เบฅเบงเบšเบฅเบงเบกเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš 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, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปเบฅเป‰เบง. เบ„เบงเบฒเบกเบ„เบทเบšเปœเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ CPython JIT


เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™