Prohoster > Blog > tin tức mạng > Bản phát hành đầu tiên của wasm3, trình thông dịch WebAssugging nhanh
Bản phát hành đầu tiên của wasm3, trình thông dịch WebAssugging nhanh
Có sẵn ерер wasm3, очень быстрого интерпретатора промежуточного кода WebAssembly, главным образом рассчитанного на применение для запуска WebAssembly-приложений на микроконтроллерах и платформах, для которых отсутствует реализация JIT для WebAssembly, недостаточно памяти для работы JIT или не допускается создание исполняемых страниц памяти, необходимых для реализации JIT. Код проекта написан на языке Си и phân phối bởi theo giấy phép MIT.
Wasm3 проходит kiểm tra на совместимость со спецификацией WebAssembly 1.0 и может применяться для запуска многих WASI-приложений, обеспечивая производительность лишь в 4-5 раз ниже JIT-движков (cất cánh, cranelift) и в 11.5 раз ниже выполнения нативного кода. При сравнении с другими интерпретаторами WebAssembly (wac, đời sống, wasm-micro-runtime), wasm3 оказался быстрее в 15.8 раз.
Для работы wasm3 необходимо 64Kb памяти для кода и 10Kb ОЗУ, что позволяет применять проект для выполнения скомпилированных в WebAssembly приложений на микроконтроллерах, таких как Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) и ATmega1284, а также на платах и компьютерах на базе архитектур x86, x64, ARM, MIPS, RISC-V и Xtensa. Из операционных систем поддерживаются Linux (в том числе маршрутизаторы на основе OpenWRT), Windows, macOS, Android и iOS. Также возможна компиляция wasm3 в промежуточный код WebAssembly для выполнения интерпретатора в браузере или для вложенного запуска (self-hosting).
Высокая производительность достигается благодаря применению в интерпретаторе техники Massey Meta Machine (M3), в которой для сокращения накладных расходов на декодирование байткода выполняется упреждающая трансляция байткода в более эффективные операции, генерирующие псевдо-машинный код, а модель выполнения стековой виртуальной машины преобразуется в более эффективный регистровый подход. Операции в M3 представляют собой Си-функции, аргументами которых являются регистры виртуальной машины, которые могут быть отражены на регистры CPU. Часто встречающиеся последовательности операций для оптимизации преобразуются в сводные операции.
Ngoài ra, có thể ghi nhận результаты исследования truyền bá
WebAssembly в Web. Проанализировав 948 тысяч самых популярных сайтов по рейтингу Alexa, исследователи выяснили, что WebAssembly используется на 1639 сайтах (0.17%), т.e. на 1 из каждых 600 сайтов. Всего на сайтах выявлена загрузка 1950 модулей WebAssembly, из которых 150 уникальные. При рассмотрении области применения WebAssembly были сделаны неутешительные выводы — в более 50% случаев WebAssembly применялся во вредоносных целях, например для майнинга криптовалюты (55.7%) и скрытия кода вредоносных скриптов (0.2%). Из легитимных применений WebAssembly отмечено выполнение библиотек (38.8%), создание игр (3.5%) и выполнение собственного кода, написанного не на JavaScript (0.9%). В 14.9% случаев WebAssembly применялся для анализа окружения для идентификации пользователя (fingerprinting).