[Moscow.pm] Мёртвый язык?

Анатолий Шарифулин sharifulin на gmail.com
Вт Май 24 05:39:12 PDT 2011


AnyEvent::Impl::Perl или EV?

Монс, а ты сравнивал хттп/тсп-сервер на AnyEvent + EV с node.js ?



2011/5/24 Mons Anderson <mons на cpan.org>

> Что-то я вас не понимаю.
>
> Интерфейсно EV и ваш NgxE идентичны.
> Причем, (может быть, конечно, это субъективно), EV'шный интерфейс более
> удобени более универсален (у вас, например, нет сигналов).
>
> Соответственно скорость разработки и на EV и на NgxE будет идентична.
>
> Насчет производительности:
>
> Я написал 3 идентичных по функционалу echo-сервера. на AnyEvent, на EV и
> взял
> из примера ваш.
>
> 50000 запросов connect/write/read/close отрабатывали соответственно:
>
> EV:   50000 took: 27 wallclock secs (20.69 usr +  4.36 sys = 25.05 CPU)
> NgxE: 50000 took: 31 wallclock secs (22.46 usr +  5.12 sys = 27.58 CPU)
> AE:   50000 took: 43 wallclock secs (25.69 usr +  5.70 sys = 31.38 CPU)
>
> Т.о. в этой задаче ваш фреймворк быстрее AnyEvent на 14% и медленнее EV на
> 10%
>
> 100000 запросов connect/write/read/.../write/read/close:
>
> EV:   100000 took:  7 wallclock secs ( 1.23 usr +  1.64 sys =  2.87 CPU)
> NgxE  100000 took:  7 wallclock secs ( 1.33 usr +  1.57 sys =  2.90 CPU)
> AE:   100000 took:  9 wallclock secs ( 4.61 usr +  1.90 sys =  6.51 CPU)
> AE:   100000 took: 12 wallclock secs ( 8.74 usr +  1.64 sys = 10.38 CPU)
>
> Здесь EV и NgxE фактически одинаковы.
> В случае с AE есть 2 варианта использования AnyEvent::Handle. первый это
> on_read, второй - push_read
>
> А теперь давайте посмотрим на стоимость разработки.
> Под AnyEvent я с легкостью найду множество различных компонент.
> Я могу соединить между собой XMPP, HTTP, SMTP и еще бог весть что...
> Что из этого есть под ваш фреймворк? Сколько, например, займет времени
> сделать
> под него реализацию XMPP?
>
> On Saturday 21 May 2011 19:52:16 Alexandr Gomoliako wrote:
> > On 5/21/11, Mons Anderson <mons на rambler-co.ru> wrote:
> > > Это чем-же AE не очень хороший вариант?
> >
> > Тем, что медленный.
> >
> > > Написать? Быстрый event loop? Быстрее чем EV? Велосипедисты, блин.
> >
> > Все очень просто, нужно избавиться от перлового оверхеда до самой
> > точки получения и отправки данных. Но с EV на это действительно уйдет
> > масса времени.
> >
> > > Посмотрю я на ваш велосипед... И на то, как вы потратите пару лет на
> то,
> > > чтобы он стал быстрее EV.
> >
> > Если изобретать с нуля, то конечно долго. У меня заняло около месяца
> > на разработку на базе нджинкса и потом небольшие изменения по мере
> > использования. Уже несколько месяцев работает стабильно на fedora и
> > freebsd, что и ожидалось, т.к. моего кода совсем чуть-чуть, а всю
> > работу, в том числе прием и отправку данных делает годами отлаженный
> > nginx. Посмотрите:
> > http://search.cpan.org/~zzz/Nginx-Engine-0.06/lib/Nginx/Engine.pm
> > (там правда не последняя, но стабильная версия и пока не полная
> > документация)
> >
> > > под Node.js реализаций различных протоколов уже на данный момент
> больше,
> > > чем под AnyEvent и Twisted вместе взятые. И поэтому под Node.js как-раз
> > > ничего и не нужно изобретать.
> >
> > А причем тут протоколы? Протокол и самому можно написать, много
> > времени не займет.
>
> А что вы имеете в виду под "изобретать под нее"?
>
> --
> Mons Anderson aka Vladimir Perepelitsa
> <mons на cpan.org> / #99779956 / quanth на irc.freenode.net
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
С уважением,
 Анатолий Шарифулин.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110524/3881bd0a/attachment-0001.html>


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