В этой статье я собираюсь сравнить собственный HTTP-сервер Java с Hyper HTTP-сервером Rust. Основываясь на своих исследованиях, я обнаружил, что Hyper - самый популярный сервер на стороне Rust. Если есть лучшие и популярные альтернативы, пожалуйста, дайте мне знать.
Rust - это скомпилированный язык, который создает машинный код, в то время как Java также является скомпилированным языком, который создает байт-код, который выполняется внутри JVM. Сравнение, возможно, не настолько справедливо. В любом случае, давайте проведем тесты и проверим результаты.
Тестовая настройка
Тесты выполняются на MacBook Pro M1 с 16 ГБ оперативной памяти.
Версии программного обеспечения следующие:
- Java v20
- Rust v1.68.2
Код HTTP-сервера hello world в обоих случаях выглядит следующим образом:
Java
Rust
Cargo.toml
Код Rust был собран в режиме релиза:
Тестирование
Каждый тест выполняется для 5 миллионов запросов.
Тесты выполняются для 10, 100 и 300 одновременных подключений.
Нагрузочный тест выполняется с помощью инструмента HTTP-тестирования Bombardier.
Ниже приведены таблицы, показывающие результаты для каждого уровня параллелизма:
Анализ
Rust полностью превосходит Java по всем аспектам, будь то RPS, задержки, процессор или память.
ПОБЕДИТЕЛЬ: Rust Hyper
Статья на list-site.