Что-то я вас не понимаю. Интерфейсно 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 <[email protected]> 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 <[email protected]> / #99779956 / [email protected] -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
