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

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

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