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

Mons Anderson mons на cpan.org
Вт Май 24 05:03:49 PDT 2011


Что-то я вас не понимаю.

Интерфейсно 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