Основан 26 Июля 2013 года
freehacks.ru fhacks.me fhacks.pw fhacksnplmzxaaoo.onion

Показано с 1 по 1 из 1
  1. #1
    TopicStarter
    Заблокирован по собственному желанию
    Аватар для S3ct0r

    Статус
    Offline
    Регистрация
    30.03.2014
    Сообщений
    459
    Репутация
    202 + / -
    Другое

    Dropbox опубликовал Pyston, реализацию языка Python, базирующуюся на JIT

    Компания Dropbox, в которой уже более года работает Гвидо ван Россум, анонсировала [Только зарегистрированные могут видеть это. ] первый выпуск проекта Pyston, в рамках которого подготовлена собственная реализация языка Python 2.7, созданная с использованием наработок проекта LLVM, примечательная применением современных технологий JIT-компиляции и нацеленная на достижение высокой производительности, близкой к производительности традиционных системных языков, таких как C++. Код Pyston написан на языке C++ и распространяется [Только зарегистрированные могут видеть это. ] под лицензией Apache.

    Проект находится на стадии экспериментальной разработки. Несмотря на то, что он уже вполне работоспособен, для конечных пользователей он пока не подходит, так как поддержка возможностей языка Python сильно ограничена. Из платформ пока поддерживается только x86_64. На текущей стадии развития производительность Pyston отстаёт от проекта PyPy, JIT-реализации Python, написанной на языке Python, но уже опережает интерпретатор CPython.

    Работа над проектом началась под впечатлением от достижений движка V8 в плане вывода производительности JavaScript на новый уровень. Потерпев неудачу в экспериментах со статической компиляцией, разработчики из Dropbox попытались воспользоваться технологиями, похожими на те, что используются в современных JavaScript-движках, для повышения производительности Python.

    Создание нового проекта (вместо использования наработок PyPy) обусловлено тем, что в PyPy используется трассирующий JIT, базирующийся на компиляции в машинный код часто выполняемых циклов, в то время как современные JavaScript-движки используют JIT на основе трансляции отдельных методов (method-at-a-time). По мнению инженеров Dropbox, method-at-a-time JIT является более перспективной технологией, но она фундаментально отличается от трассирующего JIT и несовместима с ним. Второй причиной было желание использовать консервативный сборщик мусора для обеспечения эффективной поддержки модулей-расширений.

    Принцип работы Pyston сводится к разбору кода на языке Python и его трансляции в промежуточное представление LLVM (IR, Intermediate Representation). Далее IR-представление проходит обработку в оптимизаторе LLVM и передаётся для исполнения в JIT-движок LLVM, который преобразует IR-представление в машинный код. Дополнительные фазы оптимизации LLVM пока не используются, их включение в дальнейшем позволит заметно увеличить производительность.

    Основная проблема заключается в недоступности для оптимизаторов LLVM низкоуровневых данных о Python-коде, так как эти данные скрыты за системой диспетчеризации динамических типов данных. Так как невозможно точно определить типы переменных в динамическом языке, в Pyston применяется техника вероятностного предсказания типов для объектов. В дальнейшем, после того как определён возможный тип объекта, во время выполнения кода производится проверка правильности принятого решения. Таким образом Pyston постоянно варьирует выполнение между двумя ветками - быстрой, когда данные о предсказанных типах подтверждаются, и медленной, используемой в случае рассогласования данных о типе.

  2. 2 пользователя(ей) сказали cпасибо:

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  

Информация на сайте предоставлена исключительно в ознакомительных целях, использование знаний в противозаконных целях преследуется по закону! Администрация не несет ответственности за ваши деяния.