Кстати, если брать чисто нативный код, то там поддержка файберов дешёвая.
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

Ответить