The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Первый выпуск Topaz, высокопроизводительной реализации Ruby,..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Ссылки "<<" и ">>" открывают первые и последние 10 сообщений.
. "Первый выпуск Topaz, высокопроизводительной реализации Ruby,..." –1 +/
Сообщение от Lain_13email (ok), 07-Фев-13, 08:18 
> А что, сам pypy при выполнении питонятины уже обгоняет си?

Вероятно ты не понял, но PyPy компилирует код в бинарный и ничего не исполняет. Собственно и CPython делает то же самое. Если нужный код вынести в модули, то при первом исполненни будут даже созданы бинарные файлы на диске, которые будут использованы при следующем запуске вместо пересборки питонятины ещё раз.

Код собранный из питонятины работает медленнее Си. Собранный PyPy — на порядок, собранный CPython на два порядка. Собственно тут поднимался вопрос о реализации компилятора PHP на JS и я указал именно на то, что написать компилятор на высокоуровневом языке может оказаться более выгодным, чем писать его на низкоуровневом с точки зрения скорости выполнения собранного кода после его оптимизации компилятором. Сам компилятор при этом наверняка будет работать медленнее даже при ограничении на использование одинакового набора оптимизаций, но это ведь и не важно — в случае компиляции нам ведь важно как быстро мы побежим, а не как долго мы к этому будем готовиться.

Другое дело, что на высокоуровневом языке наверняка будет невыгодно писать интерпретатор или JIT-компилятор с точки зрения времени затрачиваемого на интерпретацию и JIT-компиляцию, так-как это время уже реально будет влиять на скорость работы приложения. В случае PHP использование компилятора действительно проблематично и приведёт к невозможности реализации некоторых его возможностей. Вообще чего уже только ни придумали для ускорения пыха. И конвертер в C++, и компилятор в байткод .NET…

> Или уже не является кастрированной реализацией питона, с запретом использовать ряд функционала?

Не являлся. Там есть некоторые различия в риализаци некоторых вещей, но в основном они связаны со сборщиком мусора, некоторыми стратегиями оптимизации исполнимого кода и изначально недокументированным поведением. Всего таких различий мало и их довольно легко избежать. Может не хватать некоторых модулей, но лишь потому, что их нужно переписать на самом же питоне и это ещё не сделано, а не потому, что это невозможно.

Подробности по ссылке, ничего ужасного принципиально неразрешимого там нет: http://pypy.readthedocs.org/en/latest/cpython_differences.html

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Первый выпуск Topaz, высокопроизводительной реализации Ruby,..., opennews, 07-Фев-13, 00:50  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру