[Moscow.pm] HTTPD на короутинах

Akzhan Abdulin akzhan.abdulin на gmail.com
Пт Май 25 13:07:36 PDT 2012


Кстати, если брать чисто нативный код, то там поддержка файберов дешёвая.
setjump/longjump сохраняют только регистры процессора. Ну и плюс учёт
кэш-миссов.

26 мая 2012 г., 0:03 пользователь Akzhan Abdulin
<akzhan.abdulin на gmail.com>написал:

> Спасибо за чёткий ответ. Совсем позабылось, что в Ruby и в node-fibers
> поддержка из коробки.
>
> В таком случае я бы Coro использовать не стал.
>
> 26 мая 2012 г., 0:00 пользователь Vladimir Timofeev <vovkasm на gmail.com>написал:
>
> 25 мая 2012 г., 15:43 пользователь Ivan Petrov
>> <i.petro.77.00 на gmail.com> написал:
>> > спасибо всем за флейм, а все-таки о сабже.
>> > Никто не делал HTTPD на короутинах? посоветуйте что-то готовое?
>> >
>> > я нашел Corona на cpan. есть отзывы?
>> > --
>> > Moscow.pm mailing list
>> > moscow-pm на pm.org | http://moscow.pm.org
>>
>> Проверил сейчас Corona, вроде работает на "Hello, world!", на чем-то
>> сложном долго проверять.
>> Даже не свалилось при LIBEV_FLAGS=8 - это включение kqueue на FreeBSD
>> в дефолтовом цикле у libev.
>>
>> Детально я все это щупал года 1.5 - 2 назад. Тогда было так (целевая
>> платформа FreeBSD):
>> * Coro - сплошные core-дампы на FreeBSD, получались только простейшие
>> вещи из документации, шаг вправо, шаг влево - core.
>> * Corona - не работала вообще
>> * EV - основной цикл в kqueue не работал, приходилось делать его в
>> select, а уже в него вставлять embedded loop на kqueue для основной
>> работы. (А еще ему нужен линкинг с pthreads для pthread_atfork, что
>> добавляло балаган в порядок следования "use" для разных XS-модулей)
>>
>> Теперь мысли в слух. В принципе контекст выполнения в Perl довольно
>> "развесистый" - штук 5 стеков + дофига глобальных сущностей, типа
>> $1,$2 и т.п. А прерывание нормальной цепочки выполнения вставкой cede
>> потребует сохранения этого стейта, что наверняка не быстро (если
>> сравнивать со "звездообразным" графом передачи управления при работе с
>> eventloop'ами). Плюс не очень безопасно, т.к. можно что-то забыть,
>> плюс головная боль, т.к. все это может меняться от версии к версии.
>> Поэтому мое имхо таково:
>> 1. Для серьезных проектов я лично Coro юзать пока не собираюсь.
>> 2. Без поддержки в языке, короутины будут медленнее, чем eventloop. И
>> для меня это замедление не стоит  "спрямления" логики выполнения из
>> коллбэков в прямолинейный код.
>>
>> --
>> Vladimir Timofeev <vovkasm на gmail.com>
>>
>> # Не говорить с человеком, с которым можно говорить, значит потерять
>> человека;
>> # говорить с человеком, с которым нельзя говорить, значит терять слова.
>> # Умный человек не теряет человека и не теряет слов.
>> #-- Конфуций
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120526/0ae9bc0a/attachment.html>


Подробная информация о списке рассылки Moscow-pm