Keluaran pertama wasm3, penterjemah WebAssembly yang pantas

Ada edisi pertama wasm3, penterjemah kod perantaraan WebAssembly yang sangat pantas yang bertujuan terutamanya untuk digunakan dalam menjalankan aplikasi WebAssembly pada mikropengawal dan platform yang tidak mempunyai pelaksanaan JIT untuk WebAssembly, tidak mempunyai memori yang mencukupi untuk menjalankan JIT, atau tidak boleh mencipta halaman memori boleh laku yang diperlukan untuk melaksanakan JIT . Kod projek ditulis dalam C dan diedarkan oleh di bawah lesen MIT.

Wasm3 lulus ujian serasi dengan spesifikasi WebAssembly 1.0 dan boleh digunakan untuk menjalankan banyak aplikasi WASI, memberikan prestasi hanya 4-5 kali lebih rendah daripada enjin JIT (tenggelam, cranelift) dan 11.5 kali lebih rendah daripada pelaksanaan kod asli. Apabila dibandingkan dengan jurubahasa WebAssembly yang lain (WAC, kehidupan, wasm-micro-runtime), wasm3 ternyata 15.8 kali lebih pantas.

Untuk menjalankan wasm3, anda memerlukan 64Kb memori kod dan 10Kb RAM, yang membolehkan anda menggunakan projek untuk menjalankan aplikasi yang disusun dalam WebAssembly pada mikropengawal, seperti Arduino MKR*, Arduino Due, Particle Photon, 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 berdasarkan seni bina x86, x64, ARM, MIPS, RISC-V dan Xtensa. Sistem pengendalian yang disokong termasuk Linux (termasuk penghala berdasarkan OpenWRT), Windows, macOS, Android dan iOS. Ia juga mungkin untuk menyusun wasm3 ke dalam kod perantaraan WebAssembly untuk menjalankan penterjemah dalam penyemak imbas atau untuk pelaksanaan bersarang (penghosan sendiri).

Prestasi tinggi dicapai melalui penggunaan teknologi dalam penterjemah Mesin Meta Massey (M3), yang menterjemahkan kod bait ke hadapan ke dalam operasi penjanaan kod mesin pseudo yang lebih cekap untuk mengurangkan overhed penyahkodan bytecode, dan menukar model pelaksanaan mesin maya berasaskan tindanan kepada pendekatan berasaskan daftar yang lebih cekap. Operasi dalam M3 ialah fungsi C yang hujahnya ialah daftar mesin maya yang boleh dipetakan ke daftar CPU. Urutan operasi pengoptimuman yang kerap berlaku ditukar kepada operasi ringkasan.

Di samping itu, ia boleh diperhatikan hasil penyelidikan merebak
WebAssembly di Web. Selepas menganalisis 948 ribu tapak paling popular mengikut penilaian Alexa, penyelidik mendapati bahawa WebAssembly digunakan pada 1639 tapak (0.17%), i.e. pada 1 daripada setiap 600 tapak. Secara keseluruhan, 1950 modul WebAssembly telah dimuat turun di tapak, yang mana 150 adalah unik. Apabila mempertimbangkan skop penggunaan WebAssembly, kesimpulan yang mengecewakan telah dibuat - dalam lebih daripada 50% kes, WebAssembly digunakan untuk tujuan berniat jahat, contohnya, untuk perlombongan mata wang kripto (55.7%) dan menyembunyikan kod skrip berniat jahat (0.2%) . Penggunaan sah WebAssembly termasuk menjalankan perpustakaan (38.8%), mencipta permainan (3.5%) dan menjalankan kod bukan JavaScript tersuai (0.9%). Dalam 14.9% kes, WebAssembly digunakan untuk menganalisis persekitaran untuk pengenalan pengguna (cap jari).

Keluaran pertama wasm3, penterjemah WebAssembly yang pantas

Sumber: opennet.ru

Tambah komen