Сравнительный анализ производительности сред исполнения 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

Согласие на обработку персональных данных

 

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