• Главная
  • Новости
  • Статьи
  • Книги
  • Видео
  • Хабы
  • Каналы
  • RU
  • EN
  • 17 May, 25
  • О Проекте
  • Контакты
ДотДев
  • Главная
  • Новости
  • Статьи
  • Книги
  • Видео
  • Хабы
  • Каналы
  1. ДотДев
  2. Статьи
  3. Разработчик провёл простой HTTP-тест «Go против Rust против Bun против Node», чтобы оценить производительность Bun 1.0

Разработчик провёл простой HTTP-тест «Go против Rust против Bun против Node», чтобы оценить производительность Bun 1.0

Node.JS *

Разработчик Эмиль Привер решил провести простой HTTP-тест «Go против Rust против Bun против Node», чтобы оценить производительность Bun 1.0.

Привер создал эталонный тест для измерения количества HTTP-вызовов, которые сервер может обработать в секунду. В тесте сравнивается производительность Bun с GO, Rust и Node, поскольку эти языки часто используются веб-разработчиками для аналогичных целей.

Тест проводился как локально, так и на сервере Linode с двумя выделенными ядрами ЦП и 4 ГБ ОЗУ с ОС Debian 11

Все четыре теста были скомпилированы и запущены с использованием следующих команд:

  • Bun: bun build --minify ./index.ts --outfile benchmark.js && bun run ./benchmark.js;
  • Rust: cargo build -r && ./taget/release/rust;
  • GO: go build -o benchmark ./cmd && ./benchmark;
  • Node: node benchmark.js.

В тесте Привер использовал такие версии сред выполнения:

  • Rust: rustc 1.74.0-nightly (b4e54c6e3 2023-09-11);
  • GO: go version go1.21.0 darwin/arm64;
  • Bun: 1.0.0;
  • Node: v20.6.1.

Тест проводился со 100 одновременными подключениями, работавшими в течение 1 минуты, и во всех средах выполнения использовалась многопоточность. HTTP-тесты проводились с использованием wrk (HTTP benchmarking tool). Языки программирования в тесте используют встроенный HTTP-сервер, за исключением Rust, который использует Axum и Tokio, поскольку в Rust нет встроенного HTTP-сервера.

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

Локальные результаты теста (сборка на Rust обрабатывает больше запросов в секунду по сравнению с другими реализациями):

Тестирование JSON локально (задача — сериализовать простую структуру JSON и вернуть её). Тут Rust по-прежнему работает лучше всего, за ним следует Go, затем Bun и, наконец, Node:

Запуск теста в облаке (возврат только simple string):

Тестирование JSON в облаке:

«Приятно видеть, что Bun работает хорошо и, похоже, может конкурировать с Rust и Go по HTTP. Я также очень рад, что теперь есть достойная среда выполнения, которая "делает все это". В отличие от таких языков, как Rust и Go, которые предоставляют менеджеры пакетов, Bun также их предоставляет. Node, с другой стороны, имеет различные менеджеры пакетов (хотя NPM поставляется с Node) и множество разных способов достижения одной и той же цели, где каждый метод быстрее других. Хотя я в целом не большой поклонник написания JavaScript, я с нетерпением жду возможности создать что-нибудь с помощью Bun», — подытожил Привер.

В начале сентября состоялся релиз Bun 1.0 - среды выполнения JavaScript и TypeScript с возможностью отладки кода и поддержкой популярных веб-фрейворков. В Bun работают полнофункциональные приложения, созданные с помощью Next.js, Remix, Nuxt, Astro, SvelteKit, Nest, SolidStart и Vite. Разработчики проекта пояснили, что Bun запускается в 4 раза быстрее, чем Node.js. Эта разница только увеличивается при запуске файла TypeScript, который требует транспиляции, прежде чем Node.js сможет его запустить.

Тэги
Статьи JаvaScript Go Тестирование Rust TypeScript Github ОС
  • 10 Oct, 23
  • 0 комментарии
  • 761 просмотры
Источник материала
https://habr.com/ru/news/760584/
ПОДЕЛИТЬСЯ:

Джо Блэк
Джо Блэк

Автор новостей IT/Tech

Комментарии
  • 1000+
    Подписки
  • 1000+
    Фолловеры
  • 1000+
    Фолловеры
Тэги
  • Python (230)
  • Программирование (181)
  • 2022 (170)
  • 2020 (151)
  • 2023 (149)
  • 2021 (128)
  • Java (128)
  • Linux (119)
  • 2019 (117)
  • Алгоритмы (112)
  • JavaScript (100)
  • Сети (99)
  • Api (92)
  • Инструменты (90)
  • Web (86)
  • Applications (79)
  • Microsoft (73)
  • PHP (73)
  • Google (72)
  • Обучение (72)
  • 2018 (68)
  • SQL (68)
  • C# (66)
  • ИИ (63)
  • Windows (60)
  • HTML (59)
  • 2017 (55)
  • C++ (53)
  • Базы данных (53)
  • Machine Learning (51)
  • Kubernetes (50)
  • Go (47)
  • Бизнес (47)
  • Паттерны (46)
  • CSS (44)
  • Проекты (42)
  • 2016 (41)
  • ИБ (41)
  • ОС (40)
  • .NET (39)
  • DevOps (39)
  • Docker (39)
  • React (39)
  • Проектирование (38)
  • Тестирование (38)
  • Математика (36)
  • Android (35)
  • Структуры Данных (35)
  • Информатика (34)
  • Framework (32)
Программирование
  • Python
  • Go
  • C#
  • Java
  • JavaScript
  • TypeScript
  • PHP
  • Ruby
  • Kotlin
  • Rust
  • C++
  • C
Скилы
  • Обучение
  • Инструменты
  • Истории
  • Data Science
  • Git
  • Тестирование
  • Проектирование
  • Алгоритмы
Софт
  • Linux
  • Windows
  • Android
  • iOS
  • Архитектура и OS
  • Базы данных
  • Backend
  • Frontend
Дизайн
  • UI/UX
  • Дизайн
  • Интерфейсы
  • Графический Дизайн
  • Game Design
Железо
  • Устройства и IoT
  • Компьютеры
  • Гаджеты
Другое
  • Бизнес
  • Стартап
  • Трудоустройство
  • Общее
  • Разное
Контакты
  • Условия использования
  • Политика конфиденциальности
  • О Проекте
  • Контакты

© 2025. ДотДев — Информационный ресурс для IT-специалистов.