Кстати, если брать чисто нативный код, то там поддержка файберов дешёвая. setjump/longjump сохраняют только регистры процессора. Ну и плюс учёт кэш-миссов.
26 мая 2012 г., 0:03 пользователь Akzhan Abdulin <[email protected]>написал: > Спасибо за чёткий ответ. Совсем позабылось, что в Ruby и в node-fibers > поддержка из коробки. > > В таком случае я бы Coro использовать не стал. > > 26 мая 2012 г., 0:00 пользователь Vladimir Timofeev > <[email protected]>написал: > > 25 мая 2012 г., 15:43 пользователь Ivan Petrov >> <[email protected]> написал: >> > спасибо всем за флейм, а все-таки о сабже. >> > Никто не делал HTTPD на короутинах? посоветуйте что-то готовое? >> > >> > я нашел Corona на cpan. есть отзывы? >> > -- >> > Moscow.pm mailing list >> > [email protected] | 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 <[email protected]> >> >> # Не говорить с человеком, с которым можно говорить, значит потерять >> человека; >> # говорить с человеком, с которым нельзя говорить, значит терять слова. >> # Умный человек не теряет человека и не теряет слов. >> #-- Конфуций >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org >> > >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
