A comparative analysis of the performance of JavaScript code execution environments: Node.js, Deno and Bun

Abstract

The subject of the study was the performance of JavaScript program execution in modern environments Node.js, Deno and Bun. These platforms are used to develop server applications and have significant differences in architecture, functionality and performance. Node.js is the most mature and widespread solution and is actively used in most modern web applications. Deno is a newer environment developed by the creator of Node.js, offering improved security, TypeScript support, and other innovations. Bun, on the other hand, is a modern and high-performance alternative focused on the speed of server-side applications. The purpose of the study is to identify the performance differences between the major modern runtime environments (Node.js, Deno and Bun) for further utilization of these environments in web application development. A computer experiment method using Docker containers and process automation using Ansible was used for the study. The execution time of different scenarios in each of the execution environments was measured. The scientific novelty of this study lies in the fact that for the first time a holistic and valid methodology for measuring and comparing JavaScript code performance in modern runtime environments has been proposed, which will allow researchers to build on the proposed approach in further experiments and extend it to new runtime environments. The results show that Bun shows the best performance in synchronous computations (sorting, JSON processing), but is behind Node.js and Deno in checking for prime numbers. Deno showed high performance in asynchronous operations, thanks to the use of Rust and the Tokio library. Node.js, despite lower results in synchronous tasks, showed stable performance in tests and remains a solid choice for large projects. In the course of the study, recommendations were developed for selecting the appropriate server-side JavaScript code execution environment for various tasks.

References

  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

Supplementary files

Supplementary Files
Action
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») на элемент с текстом «Принять и продолжить».