1


    Опубликовано обновление проекта Pyston 0.6.1, в рамках которого компанией Dropbox развивалась высокопроизводительная реализация языка Python, созданная с использованием наработок проекта LLVM и использующая  JIT-компиляцию для достижения высокой производительности. Код Pyston написан на языке C++ и распространяется под лицензией Apache.    Кроме исправления ошибок и устранения несовместимостей в новой версии в представлены значительные оптимизации производительности. При проведении штатных тестов  Pyston 0.6.1 работает в среднем  на 95% быстрее, чем CPython, в более реалистичных тестах на основе реальных web-приложений Pyston обгоняет CPython на 48%, а на серверах Dropbox - на 10%.      К сожалению дальнейшее развитие проекта будет зависеть от интереса к нему независимого сообщества - компания Dropbox приняла решение прекратить разработку своими силами и  Pyston 0.6.1 стал последним релизом, подготовленным инженерами Dropbox в своё основное рабочее время. Проанализировав состояние проекта компания пришла к выводу, что на поддержание совместимости с CPython и обеспечение приемлемого потребления памяти требуется значительно больше ресурсов и затрат, чем ожидалось. Но решающим фактором отказа от проекта Pyston стали не оправдавшиеся завышенные надежды на производительность Pyston.       Несмотря на неплохие показатели в синтетических тестах, на реальных серверах Dropbox использование Pyston позволило добиться лишь ускорения кода на 10%, что значительно меньше ожидаемого (планировалось добиться повышения производительности как минимум в два раза). В текущем виде  Pyston обеспечивает неплохую совместимость с CPython, достаточную для выполнения серверного кода Dropbox, но всё время при разработке ушло  на обеспечение совместимости и снижение потребления памяти, а не на оптимизацию специфичных нагрузок.  В итоге, более реалистичным путём оптимизации в Dropbox стала переработка кода,  требующего высокой производительности, на других языках, таких как Go.      В ближайшее время занятые в разработке Pyston инженеры будут переключены на работу над другими проектами. Код Pyston останется открытым и доступным для развития сообществом. Рассматриваются возможности продолжения развития отдельных частей проекта или их переноса в  CPython.        Напомним, что в отличие от проекта PyPy, также продвигающего идею применения JIT для ускорения выполнения Python-скриптов, в Pyston используется не трассирующий JIT, базирующийся на компиляции в машинный код часто выполняемых циклов, а применяемый в современных JavaScript-движках JIT на основе трансляции отдельных методов (method-at-a-time), который, по мнению инженеров Dropbox,  является более перспективной технологией. Принцип работы Pyston сводится к разбору кода на языке Python и его трансляции в промежуточное представление LLVM (IR, Intermediate Representation). Далее IR-представление проходит обработку в оптимизаторе LLVM и передаётся для исполнения в JIT-движок LLVM, который преобразует IR-представление в машинный код.     
Для получения информации о типах переменных для программ на динамическом языке Python применяется техника вероятностного предсказания типов объектов с последующим уточнением правильности выбора типа в процессе выполнения. Таким образом Pyston постоянно варьирует выполнение между двумя ветками - быстрой, когда данные о предсказанных типах подтверждаются, и медленной, используемой в случае рассогласования данных о типе. Работа может осуществляться в многопоточном режиме, допускающем параллельное выполнение нескольких нитей кода на языке Python и избавленном от глобальной блокировки интерпретатора (GIL, global interpreter lock).      <     
    Источник: http://www.opennet.ru/opennews/art.shtml?num=45984
   
_источник

2

Однако Go тащит. Кста, вот эта https://www.opennet.ru/opennews/art.shtml?num=45816 штука мне кажется довольно перспективной, если Google, в очередной раз, на нее не забьет. И хорошо бы ещё для 3го Python'a такое запилили ab

Конечно, это работает в Gentoo!