+ к тому, что сказал und3f: как минимум use EV; EV::loop() вместо httpd->run; Но как я посмотрел - особого выигрыша это не даст (~ +10%).
Погонял свой (AnyEvent::HTTP::Server @ gthub) - производительность несколько больше ( даже с учетом включеной отладки ), но все равно значительно хуже, чем у twisted. Думаю мой можно затюнить где-то до 1k (против 1.5k у twisted) Проблемы судя по профайлеру в AE::Handle. Вообще по хорошему к базовым вещам AE (таким как Handle, Socket, ...) нужно писать XS версии. PS: спасибо за наводку: подумаю на тему отказаться от AE::Handle в своей реализации. On 23.11.2011, at 14:18, Alexey Shrub wrote: > Всем привет, > > Взял примеры http демонов с > http://twistedmatrix.com/trac/ > и > http://search.cpan.org/perldoc?AnyEvent::HTTPD > > чуть допилил до похожего на реальность - они сериализуют запрос в json и > кладут в редис, алгоритм вроде идентичный, однако судя по тестам > ab -c 100 -n 10000 > 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' > > twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 > req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, > он такой же медленный > > Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать > Twisted ? > > исходники в аттаче, тестил на обычном писюке с Ubuntu > > <twisted-web.py><anyevent-http.pl>-- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
