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

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


Спасибо за чёткий ответ. Совсем позабылось, что в 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/6f3cccce/attachment-0001.html>


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