[Moscow.pm] Perl AnyEvent vs Python Twisted (via HTTP)
Mons Anderson
mons на rambler-co.ru
Ср Ноя 23 03:52:08 PST 2011
+ к тому, что сказал 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
> moscow-pm на pm.org | http://moscow.pm.org
Подробная информация о списке рассылки Moscow-pm