Информация об изменениях

Сообщение Re[2]: Для бекенда выберете Python или Go? от 28.01.2023 10:26

Изменено 28.01.2023 10:47 Pauel

Re[2]: Для бекенда выберете Python или Go?
Здравствуйте, s_aa, Вы писали:

>>Если отбросить варианты сверхтяжеловесов типа .net/java, что бы из двух сабжевых языков выбрали и почему?


_>А nodejs чем не угодил?


У ноды есть чудовищный ботлнек — эвентлуп. Чуть что более менее нетривиальное, он блокируется и легких способов обойти это дело нет.

Скажем, я запилил серверную реализацию одата протокола, и на пейлоадах до десятка кб всё хорошо. Обгоняет и дотнетный аналог и джавовский. Но вот с ростом пейлоада нода все сильнее и сильнее блокирует эвентлуп, что вобщем то крайне так себе. И дотнет, и джава спокойно решают это дело тредпулом, в ноде приходится всё мастырить руками.
Можно запустить кластер, теоретически, будет чтото более менее внятное, но и здесь мы просто отодвигаем кончину, если сервер находится под нагрузкой где пейлоад конский.
Re[2]: Для бекенда выберете Python или Go?
Здравствуйте, s_aa, Вы писали:

>>Если отбросить варианты сверхтяжеловесов типа .net/java, что бы из двух сабжевых языков выбрали и почему?


_>А nodejs чем не угодил?


У ноды есть чудовищный ботлнек — эвентлуп. Чуть что более менее нетривиальное, он блокируется и легких способов обойти это дело нет.

Скажем, я запилил серверную реализацию одата протокола, и на пейлоадах до десятка кб всё хорошо. Обгоняет и дотнетный аналог и джавовский. Но вот с ростом пейлоада нода все сильнее и сильнее блокирует эвентлуп, что вобщем то крайне так себе. И дотнет, и джава спокойно решают это дело тредпулом, в ноде приходится всё мастырить руками. Еще на 500кб обходит дотнет, но паузы в эвентлупе существенные.
Можно запустить кластер, теоретически, будет чтото более менее внятное, но и здесь мы просто отодвигаем кончину, если сервер находится под нагрузкой где пейлоад конский.