Psyco - это неподдерживаемый специализированный компилятор « точно в срок» для Python до версии 2.7, первоначально разработанный Армином Риго, а затем поддерживаемый и развиваемый Кристианом Тисмером . Разработка прекратилась в декабре 2011 года. [1]
Разработчики) | Армин Риго, Кристиан Тисмер |
---|---|
Окончательный релиз | 1.6 / 16 декабря 2007 г . |
Репозиторий | |
Написано в | C , Python |
Операционная система | Кроссплатформенность |
Платформа | Только 32-битный x86 |
Тип | Оперативный компилятор |
Лицензия | Лицензия MIT |
Веб-сайт | psyco |
Psyco работала в операционных системах, производных от BSD , Linux , Mac OS X и Microsoft Windows с использованием 32-битных Intel-совместимых процессоров. Psyco был написан на C и генерировал только 32-битный код на основе x86 .
Хотя 17 июля 2009 г. Тисмер объявил, что ведется работа над второй версией Psyco [2], 12 марта 2012 г. еще одно объявление объявило проект «не обслуживаемым и мертвым» и вместо этого указывало посетителей на PyPy . [3] В отличие от Psyco, PyPy включает интерпретатор и компилятор, который может генерировать C, что улучшает его кроссплатформенную совместимость по сравнению с Psyco.
Повышение скорости
Psyco может заметно ускорить приложения, связанные с процессором. Фактическая производительность сильно зависит от приложения и варьируется от небольшого замедления до 100-кратного ускорения. [4] [5] [6] [7] Среднее улучшение скорости обычно находится в диапазоне 1,5-4x, что делает производительность Python близкой к таким языкам, как Smalltalk и Scheme , но все же медленнее, чем скомпилированные языки, такие как Fortran , C или некоторые другие. другие языки JIT, такие как C # и Java . [8]
Psyco также рекламирует свою простоту использования: простейшая оптимизация Psyco включает добавление только двух строк в начало скрипта: [9]
импорт psyco psyco . полный ()
Эти команды импортируют модуль psyco и позволяют Psyco оптимизировать весь скрипт. Этот подход лучше всего подходит для более коротких сценариев, но демонстрирует минимальный объем работы, необходимой для начала применения оптимизаций Psyco к существующей программе.
Смотрите также
- PyPy
- Незагруженная ласточка
- Cython
- YARV (еще одна виртуальная машина Ruby)
Рекомендации
- ^ "psyco / Commits" . Bitbucket . Армин Риго.
- ^ Тисмер, Кристиан (17 июля 2009 г.). "[pypy-dev] ANN: psyco V2" . Список рассылки pypy-dev .
- ^ "Домашняя страница Psyco" .
- ^ «Тесты Python Psyco» . Архивировано из оригинала на 2008-06-06 . Проверено 24 апреля 2008 . CS1 maint: обескураженный параметр ( ссылка )
- ^ "Домашняя страница Python Psyco на sourceforge" . Проверено 4 марта 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Руководство для начинающих по использованию Python для вычислений производительности на scipy.org» . Архивировано из оригинала на 2009-03-11 . Проверено 4 марта 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Очаровательный Python: заставьте Python работать так же быстро, как C с помощью Psyco» . Проверено 4 марта 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Резюме коробчатого графика» . Архивировано из оригинала на 2011-06-03 . Проверено 16 октября 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Риго, Армин. «Быстрые примеры» . Полное руководство Psyco . Проверено 3 июня 2011 года . CS1 maint: обескураженный параметр ( ссылка )
Внешние ссылки
- Psyco на SourceForge.net
- Статья Дэвида Мертца на IBM developerWorks : заставить Python работать так же быстро, как C с помощью Psyco
- психологические ноты, Бедный Йорик