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

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

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

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

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

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

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

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


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

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

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


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

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

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


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

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

hyperf не дотягивает по скорости
-3
Да, вы правы, быстрее джанги почти в два раза. К сожалению в прод его я не пущу. Пождем пока наберет 5к звезд и большое коммьнити.
+1
открытие главной страницы с ответом 200 и пустым содержанием

как много в вашем «конструкторе сайтов» таких запросов?
0
От фреймворка в первую требуется в первую очередь быстрая отработка роутинга и выдача ответа. Остальное большей частью делается обычно на других библиотеках или средствами языка.

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

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

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

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

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

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

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

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