Rilis pertama wasm3, juru bahasa WebAssembly yang cepat

Tersedia edisi pertama wasm3, penerjemah kode perantara WebAssembly yang sangat cepat terutama ditujukan untuk digunakan dalam menjalankan aplikasi WebAssembly pada mikrokontroler dan platform yang tidak memiliki implementasi JIT untuk WebAssembly, tidak memiliki cukup memori untuk menjalankan JIT, atau tidak dapat membuat halaman memori yang dapat dieksekusi yang diperlukan untuk mengimplementasikan JIT . Kode proyek ditulis dalam C dan didistribusikan oleh di bawah lisensi MIT.

Wasm3 lolos tes kompatibel dengan spesifikasi WebAssembly 1.0 dan dapat digunakan untuk menjalankan banyak aplikasi WASI, memberikan kinerja hanya 4-5 kali lebih rendah daripada mesin JIT (lepas landas, angkat derek) dan 11.5 kali lebih rendah dari eksekusi kode asli. Jika dibandingkan dengan juru bahasa WebAssembly lainnya (wac, kehidupan, wasm-mikro-runtime), wasm3 ternyata 15.8 kali lebih cepat.

Untuk menjalankan wasm3, Anda memerlukan memori kode 64Kb dan RAM 10Kb, yang memungkinkan Anda menggunakan proyek untuk menjalankan aplikasi yang dikompilasi di WebAssembly di mikrokontroler, seperti Arduino MKR*, Arduino Due, Foton Partikel, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) dan ATmega1284, serta pada papan dan komputer berbasis arsitektur x86, x64, ARM, MIPS, RISC-V dan Xtensa. Sistem operasi yang didukung termasuk Linux (termasuk router berbasis OpenWRT), Windows, macOS, Android dan iOS. Wasm3 juga dapat dikompilasi ke dalam kode perantara WebAssembly untuk menjalankan penerjemah di browser atau untuk eksekusi bersarang (hosting mandiri).

Kinerja tinggi dicapai melalui penggunaan teknologi penerjemah Mesin Meta Massey (M3), yang menerjemahkan bytecode ke dalam operasi pembuatan kode mesin semu yang lebih efisien untuk mengurangi overhead decoding bytecode, dan mengubah model eksekusi mesin virtual berbasis tumpukan menjadi pendekatan berbasis register yang lebih efisien. Operasi di M3 adalah fungsi C yang argumennya berupa register mesin virtual yang dapat dipetakan ke register CPU. Urutan operasi optimasi yang sering terjadi diubah menjadi operasi ringkasan.

Selain itu, dapat diperhatikan hasil penelitian penyebaran
Majelis Web di Web. Setelah menganalisis 948 ribu situs terpopuler menurut peringkat Alexa, peneliti menemukan bahwa WebAssembly digunakan di 1639 situs (0.17%), yaitu. pada 1 dari setiap 600 situs. Secara total, 1950 modul WebAssembly diunduh di situs tersebut, 150 di antaranya unik. Ketika mempertimbangkan ruang lingkup penggunaan WebAssembly, kesimpulan yang mengecewakan dibuat - di lebih dari 50% kasus, WebAssembly digunakan untuk tujuan jahat, misalnya, untuk menambang cryptocurrency (55.7%) dan menyembunyikan kode skrip berbahaya (0.2%) . Penggunaan WebAssembly yang sah mencakup menjalankan perpustakaan (38.8%), membuat game (3.5%), dan menjalankan kode non-JavaScript khusus (0.9%). Dalam 14.9% kasus, WebAssembly digunakan untuk menganalisis lingkungan untuk identifikasi pengguna (sidik jari).

Rilis pertama wasm3, juru bahasa WebAssembly yang cepat

Sumber: opennet.ru

Tambah komentar