Какая веб-платформа быстрее?

OleStep OleStep 24 Августа 2021

Существует множество серверных веб-фреймворков для разных языков программирования. У каждого из них есть свои преимущества и недостатки. И ответить на вопрос «Какой фреймворк лучше?» — непростая задача.

Но мы можем взглянуть на эту тему с разных сторон. А производительность — это простая метрика (но только одна из многих), которую можно измерить и которая дает ответ на вопрос «какая структура быстрее?»

Нашел интересный проект, цель которого, попытаться измерить производительность различных веб-стеков, когда они выходят из коробки, без добавления кода.

Полученные результаты

Тестирование проводилось с помощью инструмента ApacheBench, выполняющего 10 тыс. запросов с уровнем параллелизма 10 .

ab -n 10000 -c 10 http://127.0.0.1:port

Таблица того, что получилось:

Framework Web Server Затарачено В секунду На запрос Самый длинный
Express Node.js/http 5.7s 1744.5 5.7 ms 184 ms
Flask waitress 9.0s 1109.6 9.0 ms 130 ms
Sinatra Puma 5.4 16.4s 608.8 16.4 ms 239 ms
Django WSGIServer 21.9s 455.7 21.9 ms 62 ms
Rails Puma 5.4 138.4s 72.2 138.4 ms 1171 ms
Laravel nginx 378.5s 26.4 378.5 ms 1042 ms

Вы можете проверить это сами

Чтобы выполнить тесты самостоятельно, вам необходимо запустить проект:

https://github.com/alchaplinsky/wfpc

с помощью Docker, поэтому убедитесь, что приложение Docker установлено на вашем компьютере.

git clone https://github.com/alchaplinsky/wfpc.git
cd wfpc
docker compose up

Провести тесты:

ab -n 10000 -c 10 http://127.0.0.1:port

Попробовал, работает. Надеюсь, это было полезным.

2 Ответа

  1. Evg Evg 24 Августа 2021 (ред.)

    Из этого списка с Flask в основном работал. Возможно в Docker стоит поместить ещё и другие?


    А вот тут (на этом сайте), надо переделать, таблицу.

    Собственно в панели администрации мы заменили таблицу дивами, думаю, — не верно. ИМХО, лучше описать таблицу, тогда её можно использовать и в тексте (сейчас стилей нет) и упростить admin.css, может быть убрать этот файл.

    И вообще, не надо заменять теги html, которые есть.

    Если таблица есть, то пусть она и останется, мы просто опишем её один раз и забудем. Необходимо переделать сие дело. А пока, пару строк добавил, чтобы не в куче было.

    P.S. Laravel опять обидели демоны такие. Ух… И хвалят и ругают, и намекают, показывают и скрывают данные. Вот тут на счет успеха Laravel уж точно спорить не будут. )

    1. OleStep OleStep 25 Августа 2021

      Так лучше, выделить строки ещё.