Найти в Дзене
Ржавый код

Go vs Rust Hyper - сравнение производительности HTTP-сервера Hello world

Оглавление

В этой статье я собираюсь сравнить собственный HTTP-сервер Go с Hyper HTTP-сервером Rust. Основываясь на своих исследованиях, я обнаружил, что Hyper - самый популярный сервер на стороне Rust. Если есть лучшие и популярные альтернативы, пожалуйста, дайте мне знать.

Сравнение будет справедливым, поскольку оба являются компилированными языками, которые создают машинный код. Давайте проведем тесты и проверим результаты.

Тестовая настройка

Тесты выполняются на MacBook Pro M1 с 16 ГБ оперативной памяти.

Версии программного обеспечения следующие:

  • Go v1.20.2
  • Rust v1.68.2

Код HTTP-сервера hello world в обоих случаях выглядит следующим образом:

Go

-2

Rust

-3

Cargo.toml

-4

Код Rust был собран в режиме релиза:

-5

Тестирование

Каждый тест выполняется для 5 миллионов запросов

Тесты выполняются для 10, 100 и 300 одновременных подключений.

Нагрузочный тест выполняется с помощью инструмента HTTP-тестирования Bombardier.

Ниже приведены таблицы, показывающие результаты для каждого уровня параллелизма:

-6
-7
-8

По сравнению со сравнениями с Bun и Deno, на этот раз конкуренция была справедливой, потому что и Go, и Rust являются компилируемыми языками. Они создают машинный код, который выполняется напрямую. Однако с точки зрения производительности Rust превосходит его по всем аспектам.

ПОБЕДИТЕЛЬ: Rust Hyper

Статья на list-site.