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

Использование Rust в серверах, написанных на других языках, для повышения производительности

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.5K
Всего голосов 31: ↑31 и ↓0+36
Комментарии13

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

Да, вот потребление памяти растовыми сервисами это прямо выше всех похвал, а когда сервис ещё и stateless, то можно вообще на копеечном количестве ресурсов хайлоад крутить.

Аномально большое использование памяти связано с запуском Node.js в «режиме кластера», который запускает 12 процессов — по одному на каждое из 12 ядер процессора на тестовой машине, где каждый из них — отдельный процесс Node.js, что и приводит к использованию 1300+ МБ памяти, несмотря на простоту нашего сервера. JS однопоточный, так что это если мы хотим полностью использовать многоядерный процессор, это — необходимое зло.

Относительно 13 МБ Памяти у Раста.
Интересны были бы показатели на 1 процессе ноды, а не на кластере

Разница в том, что на этих 13 мегабайтах Раст продолжает оставаться многопоточным и может в теории утилизировать все ядра. Нода же так не может, поэтому для нее нужен режим кластера. Так что сравнение полностью корректное.

Какие будут показатели на ноде не в режиме кластера, а на 1 процессоре/ядре?

Примерно в 12 раз меньше, но это не точно.

Кажется странной идея самому переписывать на Rust когда совсем недавно тут была статья, называлась «Попробуйте Tauri», кажется.

Как связан фреймворк для GUI и сервера?

Первый содержит в себе второй. Но высказывание действительно неудачное, не признал я в axum фреймворк. Потому что не Rocket… Но и «переписываем на Rust” тоже не вполне точная формулировка.

13 МБ впечатляют. Даже не столько 13 МБ как таковые, так и должно быть, а скорее то, что ноде нужно в 100 раз больше памяти, чтобы делать "то же самое" в 5 раз медленнее.

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

Я не сомневаюсь, что при сравнении одинаковых алгоритмов картина будет похожей. Просто хотел вынести в комментарий для читающих по диагонали (как я в первый раз), что статья не про сравнение скорости языков, а про сравнение скорости веб-серверов на этих языках в сочетании с библиотеками по генерации qr-кодов, о чем по сути в статье и написано.

Не очень понятно какую память меряют. Если виртуальную, то 1300 метров могут быть меньше на самом деле. Правда, даже если 1300 на самом деле 650, всё равно разница впечатляющая.


хотелось бы с go увидеть тут же сравнение, расширим статью ?)

Думаю дочитаю до конца, тоже об этом напишу :)

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий