В Python 3.13.0a6 нашли встроенный JIT-компилятор

Новости Отредактировано

В альфа-версии Python 3.13.0a6 нашлось упоминание встроенного JIT-компилятора, который основан на архитектуре Copy-and-Patch.

2К открытий23К показов
В Python 3.13.0a6 нашли встроенный JIT-компилятор

Python 3.13.0a6 принес с собой экспериментальную функцию, которая может значительно повысить производительность языка — JIT-компилятор.

JIT (Just-In-Time) компилятор – это инструмент, который компилирует код Python в машинный код «на лету», во время выполнения программы. Все это позволяет языку работать значительно быстрее, чем раньше.

Как работает JIT-компилятор в Python?

  • в Python 3.13.0a6 он основан на архитектуре Copy-and-Patch.
  • инструмент компилирует байткод Python в машинный код, используя LLVM.
  • JIT-компилятор генерирует код очень быстро и легко поддерживается.
  • он полностью интегрирован с интерпретатором Python.

Какие преимущества дает JIT-компилятор?

Как минимум, он генерирует код в 5 раз быстрее, чем WebAssembly (Liftoff), в случае с Python 3.13.0a6. Да и результирующий код работает на 50% быстрее, чем код, скомпилированный с помощью устаревшего инструмента.

К тому же JIT-компилятор в Python 3.13.0a6 работает в 100 раз быстрее, чем традиционный JIT-инструментарий LLVM. Здесь результирующий код быстрее уже на 15%, чем тот, что скомпилирован с помощью LLVM.

А как попробовать JIT-компилятор?

Для начала нужно уточнить, что JIT-компилятор в Python 3.13.0a6 — это экспериментальная функция. Для его активации необходимо добавить опцию --enable-experimental-jit при сборке CPython.

Вам также потребуется установить LLVM в качестве дополнительной зависимости.

Скачать нужную версию Python можно по ссылке.

Если вы хотите использовать свои навыки автоматизированного тестирования на переднем крае технологий, присоединяйтесь к команде в 2GIS.PRO на позицию Tech Lead AQA. Изучение новых возможностей Python 3.13.0a6 будет отличным дополнением к рабочему арсеналу.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий23К показов