แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ Nuitka 4.0, Python-แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒขแƒแƒ แƒ˜. CPython JIT-แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒ”แƒกแƒ˜.

แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ Nuitka 4.0 แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒก Python แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก C แƒฌแƒแƒ แƒ›แƒแƒ›แƒแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒกแƒแƒ—แƒแƒ แƒ’แƒ›แƒœแƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒจแƒ˜ libpython-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— CPython-แƒ—แƒแƒœ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒœแƒ˜แƒขแƒแƒ แƒ˜แƒฃแƒšแƒ˜ CPython แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก). แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒกแƒ แƒฃแƒšแƒ˜ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ Python 2.6, 2.7, 3.4 - 3.13-แƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ—แƒแƒœ. CPython-แƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒžแƒ˜แƒกแƒขแƒแƒœแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก 335%-แƒ˜แƒ— แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒแƒก. แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ“แƒ”แƒ‘แƒ 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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ