[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