Проект PyPy представил визуализатор процесса JIT-компиляции и обрисовал ситуацию, когда PyPy быстрее языка Си

Материал из Викиновостей, свободного источника новостей

15 августа 2011 года

Разработчики проекта PyPy, в рамках которого развивается реализация языка Python со статической типизацией, написанная на языке Python и активно использующая JIT-компиляцию, представили систему jitviewer (Архивная копия от 13 августа 2020 на Wayback Machine). Jitviewer представляет собой инструментарий для визуализации процесса преобразования кода встроенным JIT-компилятором, что дает возможность наглядно разобраться, какой именно Python-код и как компилируется в ассемблерное представление. Для желающих поэкспериментировать с Jitviewer без локальной установки представлена online-демонстрация (Архивная копия от 11 февраля 2012 на Wayback Machine).

Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, минуя фазу интерпретации байткода в виртуальной машине, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию CPython: при выполнении 20 тестов производительности PyPy в среднем опережает CPython в 4.3 раза. Несколько дней назад в блоге разработчиков PyPy была опубликована заметка, в которой разбиралась ситуация, когда PyPy может исполнять некоторые операции быстрее, чем их реализация на языке Си.

В частности, речь ведется о функциях форматирования строк. Как оказалось, разработчикам PyPy удалось увеличить производительность выполнения операций форматирования для конструкций на языке Python настолько, что удалось в два раза обогнать по скорости реализацию функции sprintf из стандартной библиотеки. При сборке с использованием GCC 4.5.2 и опции оптимизации "-O4", тестовый пример на языке Си был выполнен за 1.63 секунд (при выделении памяти не статически, а через malloc время выполнения увеличилось до 1.96 сек.) В то время как аналог на языке Python был выполнен с использованием PyPy за 0.85 сек. При запуске того же примера в CPython, на его выполнение было потрачено более 10 сек.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Проект PyPy представил визуализатор процесса JIT-компиляции и обрисовал ситуацию, когда PyPy быстрее языка Си», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.