[Moscow.pm] AnyEvent::HTTP::Server

Mons Anderson mons на cpan.org
Вт Янв 22 17:21:11 PST 2013


Кстати, хотел заодно написать в чем вообще смысл максимально тюнить
отдельную компоненту.

Дело в том, что Perl + EV способен обработать 40-50k rps на простом
бинарном протоколе.
соответственно, я считаю, что это, так сказать, "внутреннее сопротивление"
перла, и соответственно подняться выше этих показателей уже очень и очень
сложно (без XS фактически невозможно).

Если мы рассматриваем базовый компонент http-сервера, то мы имеем следующую
картину:
допустим, есть пред. версия, со своими 3k rps. Я могу навернуть в нее еще
кучку объектов, какой-то логики, и все равно это буден, ну, скажем, 2.7k
rps. Вроде-бы проседание небольшое.

Если эту же логику я воткну в новую версию, то я получу приблизительно
те-же 2.8-3k rps. Проседание громадное.

Но! Если мы рассмотрим какую-то очень простую задачу, которая не будет
сильно осложнять работу сервера (а это вполне может быть какой-то сложный
XS), то разница в итоговом приложении будет очевидна: один ограничен
потолком в 7.7k, другой в 3k.

Аналогия с электрикой здесь подобная. Если полезная нагрузка значительно
превышает внутреннее сопротивление, то мы не заметим разницы между новой
версией и старой. А если полезная нагрузка сопоставима с внутр.
сопротивлением, или даже меньше его, то разница весьма ощутима.
Вобщем измерение "тока" проверяется на "коротком замыкании".
Но не ожидайте в реальном приложении тех-же показателей. Просто при
разработке приложения нужно знать теоретический потолок, чтобы понимать
насколько ваше приложение хорошо написано.
Если ваше приложение не заметит разницы между AE::HTTPD и AE::HTTP::Server,
то скорее всего вы не умеете писать эффективный код.

-- 
Best wishes,
Vladimir V. Perepelitsa aka Mons Anderson
<inthrax на gmail.com>, <mons на cpan.org>
http://github.com/Mons
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130123/995766c8/attachment.html>


Подробная информация о списке рассылки Moscow-pm