Tez WebAssembly tarjimoni wasm3 ning birinchi versiyasi

Mavjud birinchi nashri wasm3, juda tez WebAssembly oraliq kod tarjimoni, birinchi navbatda, WebAssembly uchun JIT ilovasi boʻlmagan, JITni ishga tushirish uchun yetarli xotiraga ega boʻlmagan yoki JITni amalga oshirish uchun zarur boʻlgan bajariladigan xotira sahifalarini yarata olmaydigan mikrokontrollerlar va platformalarda WebAssembly ilovalarini ishga tushirishda foydalanish uchun moʻljallangan. . Loyiha kodi C va tilida yozilgan tarqaladi MIT litsenziyasi ostida.

Wasm3 o'tadi sinovlari WebAssembly 1.0 spetsifikatsiyasiga mos keladi va ko'plab WASI ilovalarini ishga tushirish uchun ishlatilishi mumkin, bu JIT dvigatellariga qaraganda atigi 4-5 baravar past ishlashni ta'minlaydi (ko'tarilish, kranlift) va mahalliy kod bajarilishidan 11.5 baravar past. Boshqa WebAssembly tarjimonlari bilan solishtirganda (wac, hayot, wasm-micro-ish vaqti), wasm3 15.8 marta tezroq bo'lib chiqdi.

Wasm3-ni ishga tushirish uchun sizga 64Kb kod xotirasi va 10Kb RAM kerak bo'ladi, bu sizga loyihani WebAssembly-da tuzilgan ilovalarni ishga tushirish uchun ishlatish imkonini beradi. mikrokontrollerlar, masalan, Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) va ATmega1284, shuningdek, x86, x64, ARM, MIPS, RISC-V va Xtensa arxitekturalari asosidagi platalar va kompyuterlarda. Qo'llab-quvvatlanadigan operatsion tizimlarga Linux (jumladan, OpenWRT asosidagi marshrutizatorlar), Windows, macOS, Android va iOS kiradi. Brauzerda tarjimonni ishga tushirish yoki ichki o'rnatish (o'z-o'zini xosting) uchun WebAssembly oraliq kodiga wasm3 ni kompilyatsiya qilish ham mumkin.

Yuqori samaradorlikka tarjimonda texnologiyadan foydalanish orqali erishiladi Massey Meta mashinasi (M3), bu bayt-kodni dekodlash uchun qo'shimcha xarajatlarni kamaytirish uchun bayt-kodni yanada samarali psevdo-mashina kodini yaratish operatsiyalariga oldinga tarjima qiladi va stekga asoslangan virtual mashinani bajarish modelini yanada samarali registrga asoslangan yondashuvga aylantiradi. M3 dagi operatsiyalar C funktsiyalari bo'lib, ularning argumentlari virtual mashina registrlari bo'lib, ularni CPU registrlari bilan taqqoslash mumkin. Optimallashtirish operatsiyalarining tez-tez sodir bo'ladigan ketma-ketligi umumlashtirilgan operatsiyalarga aylantiriladi.

Bundan tashqari, buni ta'kidlash mumkin tadqiqot natijalari tarqatish
Internetda WebAssembly. Alexa reytingiga ko'ra 948 ming eng mashhur saytlarni tahlil qilgandan so'ng, tadqiqotchilar WebAssembly 1639 ta saytda (0.17%) qo'llanilishini aniqladilar, ya'ni. har 1 ta saytdan 600 tasida. Saytlarda jami 1950 ta WebAssembly moduli yuklab olindi, ulardan 150 tasi noyob edi. WebAssembly-dan foydalanish ko'lamini ko'rib chiqishda umidsizlikka uchragan xulosalar qilindi - 50% dan ortiq hollarda WebAssembly zararli maqsadlarda, masalan, kriptovalyutani qazib olish (55.7%) va zararli skriptlar kodini yashirish (0.2%) uchun ishlatilgan. . WebAssembly’dan qonuniy foydalanish qatoriga kutubxonalarni ishga tushirish (38.8%), o‘yinlar yaratish (3.5%) va JavaScript bo‘lmagan maxsus kodni ishga tushirish (0.9%) kiradi. 14.9% hollarda WebAssembly foydalanuvchi identifikatsiyasi (barmoq izlari) uchun muhitni tahlil qilish uchun ishlatilgan.

Tez WebAssembly tarjimoni wasm3 ning birinchi versiyasi

Manba: opennet.ru

a Izoh qo'shish