Найти тему
Ржавый код

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

Оглавление

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

Rust - это скомпилированный язык, который создает машинный код, в то время как Java также является скомпилированным языком, который создает байт-код, который выполняется внутри JVM. Сравнение, возможно, не настолько справедливо. В любом случае, давайте проведем тесты и проверим результаты.

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

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

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

  • Java v20
  • Rust v1.68.2

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

Java

-2

Rust

-3

Cargo.toml

-4

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

-5

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

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

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

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

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

-6
-7
-8

Анализ

Rust полностью превосходит Java по всем аспектам, будь то RPS, задержки, процессор или память.

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

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