Исследование производительности WebAssembly в среде исполнения Node.js

Обложка

Цитировать

Полный текст

Аннотация

Современные среды исполнения, такие как браузеры, Node.js и пр. предоставляют разработчикам инструменты, позволяющие выходить за рамки традиционного JavaScript. Объектом данного исследования выступает современный подход к созданию веб-приложений, в которых возможно выполнение и совместное использование компонентов, написанных на разных языках программирования, в результате применения WebAssembly. Предметом исследования является тестирование и анализ результатов тестов, направленных на измерение производительности JavaScript и WebAssembly-модулей в среде выполнения Node.js, с акцентом на сравнение эффективности выполнения вычислительных задач, взаимодействия с памятью, обработки данных и межъязыкового взаимодействия. Автор подробно рассматривает такие аспекты темы, как интеграция WebAssembly в приложения, оценка его преимуществ при решении ресурсоёмких задач, таких как обработка изображений, объективность, репрезентативность и воспроизводимость тестирования В работе используется прикладной, экспериментальный подход. Было произведено сравнение скорости выполнения операций при использовании чистого JavaScript и WebAssembly-модулей. Для оценки эффективности были использованы данные о времени ответа на запрос, о потреблении ресурсов системы приложением. Научная новизна данной работы заключается в разработке и теоретическом обосновании подходов к тестированию веб-приложений с использованием технологии WebAssembly. В отличие от большинства существующих исследований, сосредоточенных на производительности и безопасности WebAssembly в браузерной среде, в данной работе внимание акцентировано на автоматизированном тестировании WebAssembly-модулей вне браузера, что до настоящего времени оставалось слабо проработанным направлением. Предложен методологический подход к организации тестирования WebAssembly-модулей в среде выполнения Node.js, включая принципы структурирования тестов, интеграции с JavaScript-компонентами и анализ результатов выполнения. Такой подход позволяет учитывать специфику серверного окружения, где WebAssembly всё активнее применяется — в частности, при разработке высоконагруженных вычислительных модулей, кросс-языковой логики и безопасного изолированного исполнения. Научная новизна также заключается в выведении критериев, позволяющих оценивать пригодность тех или иных компонентов приложения для переноса в WebAssembly с точки зрения тестируемости, что даёт разработчикам дополнительный инструмент принятия архитектурных решений. Предложенные идеи подтверждены экспериментальной частью, включающей примеры реализации тестирования сценариев взаимодействия между WebAssembly и JavaScript.

Об авторах

Владимир Дмитриевич Карпович

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

Email: mywinter4@yandex.ru
ORCID iD: 0009-0009-5397-3731
студент; факультет Программной Инженерии и Компьютерной Техники;

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

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

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

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

  1. Stefan Fredriksson. WebAssembly vs. its predecessors: A comparison of technologies // diva-portal.org. Jul. 25, 2020. URL: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1460603&dswid=-4940 (дата обращения 07.04.2025).
  2. Marcus Alevärn. Server-side image processing in native code compared to client-side image processing in WebAssembly // diva-portal.org. Jul 27, 2021. URL: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1587964&dswid=-8296 (дата обращения 07.04.2025).
  3. Репозиторий с исходным кодом проекта. URL: https://github.com/Winter4/image-processor-backend (дата обращения 07.04.2025).
  4. Kirill Smelyakov. Efficiency of image convolution // ieee.org. Sep 8, 2019. URL: https://doi.org/10.1109/CAOL46282.2019.9019450 (дата обращения 07.04.2025).
  5. Aravind Samy Shanmugam. Docker Container Reactive Scalability and Prediction of CPU Utilization Based on Proactive Modelling // ncirl.ie. Sep 13, 2017. URL: https://norma.ncirl.ie/2884/1/aravindsamyshanmugam.pdf (дата обращения 07.04.2025).
  6. Xinchen Xu, Aidong Xu. Research on Security Issues of Docker and Container Monitoring System in Edge Computing System // iopscience.iop.org. Sep 27, 2020. URL: https://doi.org/10.1088/1742-6596/1673/1/012067 (дата обращения 07.04.2025).
  7. Matti Holopainen. Monitoring Container Environment with Prometheus and Grafana // theseus.fi. May 3, 2021. URL: https://www.theseus.fi/bitstream/handle/10024/497467/Holopainen_Matti.pdf (дата обращения 07.04.2025).
  8. Bahrami Sepide. Automated Performance Testing in Ephemeral Environments // thesis.unipd.it. Jul 9, 2024. URL: https://thesis.unipd.it/handle/20.500.12608/66511 (дата обращения 07.04.2025).
  9. David Reis. Developing Docker and Docker-Compose Specifications: A Developers' Survey // ieee.org. Dec 22, 2021. URL: https://doi.org/10.1109/ACCESS.2021.3137671 (дата обращения 07.04.2025).
  10. Adeel Ehsan. RESTful API Testing Methodologies: Rationale, Challenges, and Solution Directions // mdpi.com. Apr 26, 2022. URL: https://doi.org/10.3390/app12094369 (дата обращения 07.04.2025).
  11. Веб-ресурс, сборник различных тестовых файлов. URL: https://examplefile.com (дата обращения 07.04.2025).
  12. Mark van dek Wilk. Convolutional Gaussian Processes // proceedings.neurips.cc. 2017. URL: https://proceedings.neurips.cc/paper/2017/hash/1c54985e4f95b7819ca0357c0cb9a09f-Abstract.html (дата обращения 07.04.2025).
  13. Linus Hellberg. Performance evaluation of Web Workers API and OpenMP // diva-portal.org. Jul 6, 2022. URL: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1681349&dswid=-9566 (дата обращения 07.04.2025).
  14. Philip Lassen. WebAssembly Backends for Futhark // futhark-lang.org. June 29, 2021. URL: https://futhark-lang.org/student-projects/philip-msc-thesis.pdf (дата обращения 07.04.2025).

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

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

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

 

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