Выпуск Nuitka 4.0, компилятора для языка Python. Прогресс развития JIT в CPython

Está dispoñible unha versión do proxecto Nuitka 4.0, que desenvolve un compilador para traducir scripts de Python nunha representación C, que despois pode compilarse nun ficheiro executable usando libpython para a máxima compatibilidade con CPython (usando ferramentas nativas de CPython para manipular obxectos). Compatibilidade completa coas versións actuais de Python 2.6, 2.7, 3.4 - 3.13. En comparación con CPython, os scripts compilados mostran unha mellora do rendemento do 335 % nas probas de pystone. O código do proxecto distribúese baixo a licenza Apache.

Na nova versión:

  • Внесены изменения для улучшения совместимости с 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


Fonte: opennet.ru

Engadir un comentario