Die erste Version von wasm3, einem schnellen WebAssembly-Interpreter.

Verfügbar erste Version wasm3, ein sehr schneller Interpreter für WebAssembly-Bytecode, der hauptsächlich für die Ausführung von WebAssembly-Anwendungen auf Mikrocontrollern und Plattformen entwickelt wurde, für die keine JIT-Implementierung für WebAssembly vorhanden ist, nicht genügend Speicher für die Ausführung von JIT zur Verfügung steht oder die Erstellung von ausführbaren Speicherseiten, die für die Implementierung von JIT erforderlich sind, nicht zulässig ist. Der Projektcode ist in C geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der MIT-Lizenz.

Wasm3 durchläuft Tests auf die Kompatibilität mit der WebAssembly 1.0-Spezifikation und kann verwendet werden, um viele WASI-Anwendungen auszuführen, wobei die Leistung nur 4-5 Mal niedriger ist als bei JIT-Engines (liftoff, cranelift) und 11,5 Mal langsamer als die Ausführung von nativen Code. Im Vergleich zu anderen WebAssembly-Interpretern (wac, life, wasm-micro-runtime) stellte sich heraus, dass wasm3 15,8 Mal schneller ist.

Für den Betrieb von wasm3 sind 64 KB Speicher für den Code und 10 KB RAM erforderlich, was es ermöglicht, das Projekt zur Ausführung von in WebAssembly kompilierten Anwendungen auf Mikrocontrollern, wie Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), einzusetzen.
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) und ATmega1284 sowie auf Plattformen und Computern, die auf den Architekturen x86, x64, ARM, MIPS, RISC-V und Xtensa basieren. Unterstützte Betriebssysteme sind Linux (einschließlich Router basierend auf OpenWRT), Windows, macOS, Android und iOS. Zudem ist eine Kompilierung von wasm3 in Zwischencode WebAssembly möglich, um den Interpreter im Browser auszuführen oder für Self-Hosting.

Hohes Leistungsniveau wird durch den Einsatz der Technik im Interpreter erreicht Massey Meta Machine (M3), bei der zur Reduzierung der Overheadkosten für das Dekodieren von Bytecode eine vorausschauende Übersetzung des Bytecodes in effizientere Operationen erfolgt, die pseudomaschinellen Code erzeugen, während das Ausführungsmodell der stackbasierten virtuellen Maschine in einen effizienteren registerbasierten Ansatz umgewandelt wird. Die Operationen in M3 sind C-Funktionen, deren Argumente die Register der virtuellen Maschine sind, die auf die Register der CPU abgebildet werden können. Häufig vorkommende Operationsfolgen zur Optimierung werden in aggregierte Operationen umgewandelt.

speziellen Distribution die Ergebnisse ihrer Untersuchung Verbreitung
WebAssembly im Web. Eine Analyse von 948.000 der beliebtesten Websites im Alexa-Ranking ergab, dass WebAssembly auf 1.639 Websites (0,17 %) verwendet wird, also auf 1 von 600 Websites. Insgesamt wurden auf diesen Websites 1.950 WebAssembly-Module geladen, von denen 150 einzigartig sind. Bei der Betrachtung der Anwendungsbereiche von WebAssembly wurden ernüchternde Erkenntnisse gewonnen: In über 50 % der Fälle wurde WebAssembly für bösartige Zwecke eingesetzt, beispielsweise für das Mining von Kryptowährungen (55,7 %) und die Verschleierung von schädlichem Code (0,2 %). Unter den legitimen Anwendungen von WebAssembly wurden die Ausführung von Bibliotheken (38,8 %), die Erstellung von Spielen (3,5 %) und die Ausführung eigenen Codes, der nicht in JavaScript geschrieben wurde (0,9 %), hervorgehoben. In 14,9 % der Fälle wurde WebAssembly zur Analyse der Umgebung zur Identifizierung von Nutzern (Fingerprinting) eingesetzt.

Die erste Version von wasm3, einem schnellen WebAssembly-Interpreter.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster