Как стать автором
Обновить

Perl vs C в веб-приложениях, результаты теста

Время на прочтение 1 мин
Количество просмотров 1.4K
Я давно хотел проверить, насколько больше запросов сможет обработать C-процесс, в сравнении с Perl-скриптом.
Проверял на простом скрипте с одним SQL-запросом, дабы избежать влияния mysql. Веб-сервер nginx, использовалось FastCGI.

Подопытный — скрипт голосования: принимает id из QUERY_STRING, IP-адрес из REMOTE_ADDR и добавляет их простым INSERT-ом в таблицу mysql. Немного подробнее о таком принципе занесения голосов я писал в Tips&Tricks 2. Оба варианта подключались к веб-серверу (nginx) по FastCGI через unix socket.

Perl-скрипт использовал CGI::Fast и DBI. Для C-варианта я использовал библиотеку fcgi_stdio, тесты проводились на моем скромном VPS с CentOS. Из-за того, что физическим сервером пользуюсь не я один, получился небольшой разброс в абсолютных значениях, но относительная разница оставалась очень ощутимой.

Тестировалось стандартным ab -n 1000 -c 10, “Requests per second”, средние значения:
Perl: 933 запроса/сек
C: 2896 запроса/сек (в 3 раза больше!)

Напоминаю, тесты повторял несколько раз, цифры немного отличались, но всегда разница была примерно в 3-4 раза.

А еще, кроме выигрыша в производительности, C-процесс занимает в несколько раз меньше памяти. В моем случае — в 3.5 раза.

З.Ы. Очень хотелось запостить это в «Веб-разработку», но, видимо, кармой не вышел. :) Если кто добавит кармы — буду благодарен.
А пока посты на схожую тематику можно почитать у меня в блоге: http://blog.ugnich.com/
Теги:
Хабы:
+7
Комментарии 26
Комментарии Комментарии 26

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн