RUS  ENG
Полная версия
ЖУРНАЛЫ // Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика // Архив

Вестн. Астрахан. гос. техн. ун-та. Сер. управление, вычисл. техн. информ., 2023, номер 2, страницы 93–100 (Mi vagtu756)

КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

Исследование WebAssembly и сравнение производительности с JavaScript

В. В. Рокотянскаяa, В. С. Абрамовb

a Российский государственный аграрный университет – МСХА имени К. А. Тимирязева, Москва, Россия
b Национальный исследовательский университет ИТМО, Санкт-Петербург, Россия

Аннотация: За долгую историю развития Интернета основным языком программирования в веб-разработке был JavaScript. Благодаря простому синтаксису и поддержке во всех популярных браузерах язык обрел боль-шую популярность среди разработчиков. Однако с развитием компьютерных мощностей и требований пользователей простые сайты переросли в веб-приложения, являющиеся полноценными аналогами десктопных приложений. С ростом возможностей выросли и требования к производительности таких программ. В браузерных движках появились способы оптимизация запускаемого кода, а активная конкуренция между браузерами способствовала качественному приросту производительности. Несмотря на все способы увеличить скорость исполнения JavaScript кода главным стоп-фактором была динамическая типизация языка. Из-за динамической типизации движку браузера необходимо каждый раз при выполнении программы проверять, является ли переменная целым числом, float или любым другим допустимым типом. Таким образом, каждая инструкция в JavaScript должна пройти через несколько проверок типов и преобразований, что замедляет ее выполнение. В связи с этим появилась идея использовать языки со строгой типизацией, что могло бы компенсировать данный недостаток. Но браузерные движки не способны выполнять код других языков, поэтому появилась технология под названием WebAssembly. Она позволяет писать код на языках со статичной типизацией и после парсит его в более нативный и приближенный формат для машин, что значительно ускоряет выполнение программ по сравнению с JavaScript. Технология является кроссплатформенной и поддерживает основные языки программирования: C++, C, Java, C#. Также реализован вызов WebAssembly с помощью JavaScript, что позволяет использовать лаконичный синтаксис JavaScript и вычислительные мощности WebAssembly вместе.

Ключевые слова: веб-технологии, JavaScript, WebAssembly, производительность, браузер, скорость работы приложения.

УДК: 004.4'416

Поступила в редакцию: 07.03.2023
Принята в печать: 19.04.2023

DOI: 10.24143/2072-9502-2023-2-93-100



© МИАН, 2024