Comments 31
Интересно что в рейтинге производительных фреймворков нет настоящего победителя — dpdk который выдерживает миллион запросов в секунду на одном ядре (https://habr.com/ru/post/416651)
www.techempower.com/benchmarks/#section=data-r18
Не хочу показаться токсичным, но у меня возникает подозрение, что и рейтинг, и репозиторий не ваш. Обосную: actix из репозитория был удалён, но сам код есть в истории гита; но тогда не могу понять, почему бы просто не восстановить его, и не прогнать нагрузочные тесты? Это намекает на то, что результаты тестирования тоже позаимствованы.
Actix вернули на следующий день после удаления, теперь он передан в поддержку сообщества.
Речь шла про код для бенчмарка на актикс, который был удалён из упоминаемого репозитория. Подкрепляющая issue — https://github.com/the-benchmarker/web-frameworks/issues/2217
Dpdk не веб фреймворк. Там даже своего TCP стека нет.
Почему у вас список отсортирован не по скорости обработки ответов, но по этом в рейтинге у вас первые места занимают "фреймворки", которые медленнее чем те, которые занимают более низкие места?
Почему вы собрали вообще все в одну кучу, если учесть что beego это дикий комбайн, gin — это api-конструктор и имеет свой роутер и кучу других приколясов, а fasthttp — это вообще не фреймворк, а просто библиотека для работы с http?
А какой смысл в сравнении вообще всего подряд?
Если вам надо производительное — вы и выберете что-то что больше рпсов показывает.
Если что-то попроще — то какой-то фреймворк с определенным набором нужных фич.
Можно сразу epoll сюда добавить, с его помощью тоже можно запросы отправлять.
Хотя вот интересно, что Django показывает в 2-3 раза лучшие результаты, чем все php-фреймворки.
Гм, я вижу как минимум один фуллстек фреймворк на PHP без swoole и event loop обгоняющий Django на 66%.
В выборке также отсутствует hyperf с приличным китайским комьюнити.
hyperf не дотягивает по скорости
https://github.com/spiral/framework само собой за счёт «звёздного» фильтра он пока не проходит.
Сам сначала сомневался в данных замерах, с другой стороны все фреймворки проходят идентичные тесты на одной машине с одинаковыми замерами. Конкретная скорость тут это относительный параметр показывающих качество прохождения одинаковых тестов.
https://github.com/the-benchmarker/web-frameworks/blob/master/README.md почти в 4ре раза — только не победил а проиграл
Механизм подсчета основан на ответах в трех сценарияхНо ведь, интернет — это не пустые страницы. Когда вы открываете страницу вам же не выдают пустую страницу в качестве контента. Почему все бенчмарки строятся вокруг простых страниц «Hello World!»?
Сделайте нормальный тест со страницей средней наполненности, с обращениями к базе данных.
С другой стороны. Страницы с контентом мало отличаются. Это просто размер передаваемого пакета. Важнее то, как быстро фреймворк проходит путь до формирования этого пакета. К тому же, на нагруженных проектах обычно кешируется все, что возможно, и в итоге большая часть запросов это просто роутинг + выдача из кеша.
С БД же отдельная тема, там скорость зависит от самой бд, типа этой бд, от индексов, настроек итд. Общение с БД обычно идет через универсальный драйвер вроде JDBC. Хотя влияние на скорость все равно будет, согласен.
Если вас это интересует, то вы можете создать форк, дополнить тесты и запустить их на своей машине.
А что не так с рейтингом www.techempower.com/benchmarks?
Там на звёзды на гитхабе не смотрят, необъективный рейтинг.
Рейтинг скоростных веб-фреймворков 2020