Сравнительный анализ производительности сред исполнения JavaScript кода: Node.js, Deno и Bun

Обложка

Цитировать

Полный текст

Аннотация

Предметом исследования послужила производительность исполнения программ на JavaScript в современных средах Node.js, Deno и Bun. Эти платформы используются для разработки серверных приложений и имеют значительные различия в архитектуре, функциональных возможностях и производительности. Node.js — это наиболее зрелое и широко распространенное решение, которое активно используется в большинстве современных веб-приложений. Deno — это более новая среда, разработанная создателем Node.js, предлагающая улучшенную безопасность, поддержку TypeScript и другие нововведения. Bun, в свою очередь, представляет собой современную и высокопроизводительную альтернативу, ориентированную на скорость работы с серверными приложениями. Цель исследования заключается в выявлении различий в производительности основных современных сред исполнения (Node.js, Deno и Bun) для дальнейшего применения этих сред в разработке серверной части веб-приложений. Для проведения исследования использовался метод компьютерного эксперимента с применением Docker-контейнеров и автоматизации процессов с помощью Ansible. Измерялось время выполнения различных сценариев в каждой из сред исполнения. Научная новизна данного исследования заключается в том что впервые предложена целостная и обоснованная методика измерения и сравнения производительности кода на JavaScript применительно к современным средам исполнения, которая позволит исследователям в дальнейших экспериментах опираться на предложенный подход и распространить его на новые среды исполнения. Результаты исследования показывают, что Bun демонстрирует наилучшую производительность в синхронных вычислениях (сортировка, обработка JSON), но уступает Node.js и Deno в проверке на простоту числа. Deno проявил высокую эффективность в асинхронных операциях, благодаря использованию Rust и библиотеки Tokio. Node.js, несмотря на более низкие результаты в синхронных задачах, показал стабильную производительность в тестах и остается надежным выбором для крупных проектов. В ходе исследования были разработаны рекомендации по выбору подходящей среды выполнения серверного JavaScript кода для различных задач.

Об авторах

Андрей Александрович Смирнов

Национальный исследовательский университет ИТМО

Email: smirnov.andrew.1999@yandex.ru
ORCID iD: 0009-0006-6322-6842
студент; факультет "Программная инженерия и компьютерные технологии";

Егор Александрович Подольский

Национальный исследовательский университет ИТМО

Email: egorpodolskij51@yandex.ru
ORCID iD: 0009-0002-8311-8882
студент; факультет "Программная инженерия и компьютерные технологии";

Артем Вячеславович Черенков

Национальный исследовательский университет ИТМО

Email: art.cherenkov@gmail.com
студент; факультет "Программная инженерия и компьютерные технологии";

Илья Борисович Государев

Национальный исследовательский университет ИТМО

Email: goss@itmo.ru
ORCID iD: 0000-0003-4236-5991
доцент; факультет "Программная инженерия и компьютерные технологии";

Список литературы

  1. Martinsen, J., Grahn, H. A methodology for evaluating JavaScript execution behavior in interactive web applications. // В материалах 9-й Международной конференции по компьютерным системам и приложениям IEEE/ACS (AICCSA), 2011. С. 241-248. doi: 10.1109/AICCSA.2011.6126611.
  2. Родыгина И. В., Наливайко А. В. Сравнительный анализ технологий для разработки серверной части системы управления продажами: статья в журнале // Известия ЮФУ. Технические науки. № 4 (221). 2021. С. 256-266. doi: 10.18522/2311-3103-2021-4-256-266.
  3. Тихонов Д.С., Черенков А.В., Долгов А.В. Сравнительный анализ технологий серверной разработки на платформах deno и bun // Научно-технические инновации и веб-технологии. 2023. № 2. С. 55-59. URL: https://elibrary.ru/item.asp?Id=56409551.
  4. Kniazev I., Fitiskin A. Choosing the right javascript runtime: an in-depth comparison of node.js and bun: статья в журнале // Norwegian journal of development of the international science. 2023. С. 72-84. doi: 10.5281/zenodo.7945166. URL: https://elibrary.ru/item.asp?Id=53844306.
  5. Koper D., Woda M. Performance Analysis and Comparison of Acceleration Methods in javascript Environments Based on Simplified Standard Hough Transform Algorithm //International Conference on Dependability and Complex Systems. Cham: Springer International Publishing, 2022. С. 131-142. doi: 10.1007/978-3-031-06746-4_13.
  6. Акиньшин А. Профессиональный бенчмарк: искусство измерения производительности. спб.: Питер, 2022. 576 с.: ил. (Серия «Библиотека программиста»). ISBN 978-5-4461-1551-8.
  7. Сальникова, К. В. Анализа массива данных с помощью инструмента визуализации "Ящик с усами" / К. В. Сальникова // Universum: экономика и юриспруденция. 2021. № 6(81). С. 11-17. doi: 10.32743/unilaw.2021.81.6.11778.
  8. Gregg B. BPF Performance Tools (Addison-Wesley Professional Computing Series) // Update. Т. 517. С. 18. 2019.
  9. Lu J., Gokhale S. S. performance analysis of a Web Server //International Journal of Information Technology and Web Engineering (IJITWE). – 2008. – Т. 3. – № 3. – С. 50-65.
  10. Lundar J. A., Grønli T. M., Ghinea G. Performance evaluation of a modern web architecture // International Journal of Information Technology and Web Engineering (IJITWE). – 2013. – Т. 8. – № 1. – С. 36-50.
  11. Смирнов А. А., Черенков А. В., Подольский Е. А. Сравнительный анализ сред исполнения Javascript кода Node.js, Deno и Bun для разработки серверной части веб-приложения // Международный журнал информационных технологий и энергоэффективности. 2024. Т. 9, № 4(42). С. 100-106.
  12. Lei, K., Ma, Y., & Tan, Z. (2014). Performance Comparison and Evaluation of Web Development Technologies in PHP, Python, and Node.js. // В материалах 17-й Международной конференции IEEE по вычислительной науке и инженерии (CSE), 2014. С. 661-668. doi: 10.1109/CSE.2014.142.
  13. Суворов Д. А. Измерение текущего быстродействия процессоров и качества программ. Способы оценки и повышения реальной производительности //Открытое образование. 2009. № 6. С. 59-65.
  14. Пентковский В. М. и др. Методология оценки производительности вычислительных систем //Актуальные проблемы современной науки. 2012. № 6. С. 358-363.
  15. Жуйков Р., Шарыгин Е. Методы предварительной оптимизации программ на языке JavaScript //Труды Института системного программирования РАН. 2015. Т. 27. № 6. С. 67-86.
  16. B. Basumatary, N. Agnihotri BENEFITS AND CHALLENGES OF USING NODE.JS // International Journal of Innovative Research in Computer Science & Technology. 2022. № 10-3. С. 67-70. URL: https://acspublisher.com/journals/index.php/ijircst/article/view/10433/9623

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».