Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 7, 2007 19:49:26

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Stackless Python

Поведайте что нибудь о этой реализации Python. Вот из википедии:

Предоставляет расширенные возможности многопоточного программирования и значительно большую глубину рекурсии. На некоторых задачах несколько быстрее CPython.
Мне вот стало интересно - онлайн игра Eve-online была написана целиком на этой реализации(из wikipedia: для написания сервера и клиента использован Stackless Python). Также исходя из системных требований (Pentium III - 700 MHz, 256 Мб RAM, 32 Mb 3D-ускоритель совместимый с DirectX 9, 1 Gb на жестком диске) игра достаточно шустрая. Вот вопрос - как ? Это позволяет делать Stackless Python ?



Офлайн

#2 Авг. 7, 2007 20:12:41

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Stackless Python

Писал я на нем.
Во первых - на 5% медленней обычного Питона.
Во вторых - Ева писана таки еще и на С++. Критический код - на плюсах. И stackless тут не при чем.
Он позволяет заводить тасклеты и каналы взаимодействия между ними. Переключение между потоками - явное.
Т.е. невытесняющая многопоточка. Поскольку потоки не системные - их можно держать хоть миллион.

Минусы:
- необходимость использовать явное переключение потоков.
- нужно использовать специализированную версию Питона. И меня вроде бы все работало нормально. Знакомые жаловались на проблемы с некоторыми extesion modules и stackless.

Есть проект py.greenlet из py lib, который делает то же - но на обычном Питоне.

И, самое главное, с генераторами из 2.5 создание специализированных вещей кажется ненужным. Все можно сделать на них.
ИМХО.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version