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

Комментарии 31

Хорошо бы написать формулу подсчёта рейтинга и сам рейтинг в явном виде. А то несколько раз пришлось перечитать, чтобы понять — почему именно в таком порядке рейтинг идёт и скор не по порядку получается, который справа написан. И если открыть исходную статью, то тоже не сразу что-то понятно становится, только ещё больше путаешься сначала. :)
Формула такая:
Количество звезд на GitHub * (Количество запросов в секунду) ^ 2

Интересно что в рейтинге производительных фреймворков нет настоящего победителя — dpdk который выдерживает миллион запросов в секунду на одном ядре (https://habr.com/ru/post/416651)

по actix, sailsjs и некоторым другим пока нет данных, как появятся — обновлю рейтинг, возможно через полгода-год.

Не хочу показаться токсичным, но у меня возникает подозрение, что и рейтинг, и репозиторий не ваш. Обосную: actix из репозитория был удалён, но сам код есть в истории гита; но тогда не могу понять, почему бы просто не восстановить его, и не прогнать нагрузочные тесты? Это намекает на то, что результаты тестирования тоже позаимствованы.

Вы удивитесь, GitHub тоже не мне принадлежит, как и программы для тестирования написаны не мной. Рейтинг я собирал для себя, для своих потребностей, после чего решил поделиться и посмотреть, кто что думает.

Actix вернули на следующий день после удаления, теперь он передан в поддержку сообщества.

Речь шла про код для бенчмарка на актикс, который был удалён из упоминаемого репозитория. Подкрепляющая issue — https://github.com/the-benchmarker/web-frameworks/issues/2217

У dpdk отличные результаты, которые сравнимы с указанными в рейтинге. К сожалению его нет на гитхабе, либо я не смог найти, поэтому конкретно в этот рейтинг он не попадает. Благодаря вам узнал про еще одно решение, спасибо.

Dpdk не веб фреймворк. Там даже своего TCP стека нет.

Почему у вас список отсортирован не по скорости обработки ответов, но по этом в рейтинге у вас первые места занимают "фреймворки", которые медленнее чем те, которые занимают более низкие места?


Почему вы собрали вообще все в одну кучу, если учесть что beego это дикий комбайн, gin — это api-конструктор и имеет свой роутер и кучу других приколясов, а fasthttp — это вообще не фреймворк, а просто библиотека для работы с http?

Добавил формулу в статью, чтобы было понятнее. Скорость в квадрате умножается на количество звезд на гитхабе, иначе на первом месте был бы github.com/dom96/httpbeast
С кашей согласен, пока все в кучу. В будущем хочется добавить больше фреймворков и распределить уже по более узким нишам. Среди тяжелых mvc например нет высоких результатов и в этом общем рейтинге они пропадают вообще. Хотя вот интересно, что Django показывает в 2-3 раза лучшие результаты, чем все php-фреймворки.

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


Можно сразу epoll сюда добавить, с его помощью тоже можно запросы отправлять.

Хотя вот интересно, что Django показывает в 2-3 раза лучшие результаты, чем все php-фреймворки.

Гм, я вижу как минимум один фуллстек фреймворк на PHP без swoole и event loop обгоняющий Django на 66%.


В выборке также отсутствует hyperf с приличным китайским комьюнити.

Вы про какой именно фуллстек фреймворк на PHP?

hyperf не дотягивает по скорости

https://github.com/spiral/framework само собой за счёт «звёздного» фильтра он пока не проходит.

Да, вы правы, быстрее джанги почти в два раза. К сожалению в прод его я не пущу. Пождем пока наберет 5к звезд и большое коммьнити.
НЛО прилетело и опубликовало эту надпись здесь
От фреймворка в первую требуется в первую очередь быстрая отработка роутинга и выдача ответа. Остальное большей частью делается обычно на других библиотеках или средствами языка.

Сам сначала сомневался в данных замерах, с другой стороны все фреймворки проходят идентичные тесты на одной машине с одинаковыми замерами. Конкретная скорость тут это относительный параметр показывающих качество прохождения одинаковых тестов.

Тот же никель взять: он же по скорости обработки запросов все вышеуказанные победит даже не задумываясь…

Да, в сравнении с остальными он проигрывает
Механизм подсчета основан на ответах в трех сценариях
Но ведь, интернет — это не пустые страницы. Когда вы открываете страницу вам же не выдают пустую страницу в качестве контента. Почему все бенчмарки строятся вокруг простых страниц «Hello World!»?
Сделайте нормальный тест со страницей средней наполненности, с обращениями к базе данных.
Вы правы, это очень важные параметры. Особенно рендер html.

С другой стороны. Страницы с контентом мало отличаются. Это просто размер передаваемого пакета. Важнее то, как быстро фреймворк проходит путь до формирования этого пакета. К тому же, на нагруженных проектах обычно кешируется все, что возможно, и в итоге большая часть запросов это просто роутинг + выдача из кеша.

С БД же отдельная тема, там скорость зависит от самой бд, типа этой бд, от индексов, настроек итд. Общение с БД обычно идет через универсальный драйвер вроде JDBC. Хотя влияние на скорость все равно будет, согласен.

Если вас это интересует, то вы можете создать форк, дополнить тесты и запустить их на своей машине.
НЛО прилетело и опубликовало эту надпись здесь
А что не так с рейтингом www.techempower.com/benchmarks?

Там на звёзды на гитхабе не смотрят, необъективный рейтинг.

Вполне себе объективный и JSON, и Hello World и работа с БД. Разное количество потоков, latency и 500-ки считает для каждого вида теста. Импортируй результаты в Excel, добавляй звезды с гитхаба, количество разработчиков и любые другие параметры в табличку с нужной формулой и считай любой рейтинг.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории