ΠŸΡŠΡ€Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° wasm3, Π±ΡŠΡ€Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° WebAssembly

На Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡŠΡ€Π²ΠΈ выпуск wasm3, ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebAssembly, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ основно Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΏΡ€ΠΈ стартиранС Π½Π° прилоТСния Π½Π° WebAssembly Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ нямат JIT рСализация Π·Π° WebAssembly, нямат Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° изпълнСниС Π½Π° JIT ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π°Ρ‚ изпълними страници с ΠΏΠ°ΠΌΠ΅Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° внСдряванС Π½Π° JIT . ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C ΠΈ разпространява сС ΠΎΡ‚ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT.

Wasm3 ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ВСстовС ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ със спСцификацията WebAssembly 1.0 ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° стартиранС Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ WASI прилоТСния, осигурявайки производитСлност само 4-5 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ниска ΠΎΡ‚ JIT Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ (ΠΈΠ·Π»ΠΈΡ‚Π°ΠΌ, cranelift) ΠΈ 11.5 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ниско ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° СстСствСн ΠΊΠΎΠ΄. Π’ сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° WebAssembly (wac, ΠΆΠΈΠ²ΠΎΡ‚, wasm-ΠΌΠΈΠΊΡ€ΠΎ-Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС), wasm3 сС ΠΎΠΊΠ°Π·Π° 15.8 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·.

Π—Π° Π΄Π° стартиратС wasm3, ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ 64Kb ΠΊΠΎΠ΄ΠΎΠ²Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ 10Kb RAM, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° стартиранС Π½Π° прилоТСния, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ Π² 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, Π·Π° Π΄Π° стартира ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° ΠΈΠ»ΠΈ Π·Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΎ изпълнСниС (самостоятСлно хостванС).

Високата производитСлност сС постига Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° тСхнология Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Машина Massey Meta (M3), ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π² ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° псСвдо-машинСн ΠΊΠΎΠ΄, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° базирания Π½Π° стСка ΠΌΠΎΠ΄Π΅Π» Π½Π° изпълнСниС Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина Π² ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π² M3 са C Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡ΠΈΠΈΡ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ са рСгистри Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΡŠΠΏΠΎΡΡ‚Π°Π²Π΅Π½ΠΈ с рСгистри Π½Π° процСсора. ЧСсто срСщанитС ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†ΠΈ ΠΎΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ изслСдванията разпространСниС
WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…Π° 948 хиляди ΠΎΡ‚ Π½Π°ΠΉ-популярнитС сайтовС спорСд Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈΡ‚Π΅ Π½Π° Alexa, изслСдоватСлитС установиха, Ρ‡Π΅ WebAssembly сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 1639 сайта (0.17%), Ρ‚.Π΅. Π½Π° 1 ΠΎΡ‚ всСки 600 сайта. ΠžΠ±Ρ‰ΠΎ 1950 ΠΌΠΎΠ΄ΡƒΠ»Π° WebAssembly бяха ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈ Π½Π° сайтовСтС, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ 150 бяха ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° WebAssembly бяха Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Ρ‰ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ - Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 50% ΠΎΡ‚ случаитС WebAssembly Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Ρ†Π΅Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΊΠΎΠΏΠ°Π΅Π½Π΅ Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡƒΡ‚Π° (55.7%) ΠΈ скриванС Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ скриптовС (0.2%) . Π—Π°ΠΊΠΎΠ½Π½ΠΈΡ‚Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ Π½Π° WebAssembly Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ стартиранС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (38.8%), създаванС Π½Π° ΠΈΠ³Ρ€ΠΈ (3.5%) ΠΈ изпълнСниС Π½Π° пСрсонализиран ΠΊΠΎΠ΄ Π±Π΅Π· JavaScript (0.9%). Π’ 14.9% ΠΎΡ‚ случаитС WebAssembly Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° срСдата Π·Π° идСнтификация Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ (ΠΏΡ€ΡŠΡΡ‚ΠΎΠ²ΠΈ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΡŠΡ†ΠΈ).

ΠŸΡŠΡ€Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° wasm3, Π±ΡŠΡ€Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° WebAssembly

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€