Baru-baru ini saya mulai menggunakan Web Assembly untuk beberapa proyek saya. Saya melakukan ini karena saya mendengar bahwa wasm lebih cepat daripada javascript.
WebAssembly lebih cepat dari JavaScript, tetapi hanya untuk kasus penggunaan tertentu. Dengan WebAssembly, peramban Anda harus melakukan lebih sedikit pekerjaan untuk mengunduh dan mengkompilasi kode Anda, sehingga memberikan waktu mulai yang lebih cepat. Namun, ketika kinerja runtime WebAssembly biasanya hanya 2 hingga 3 kali lebih cepat dari JavaScript. Lihat artikel berikut untuk perbandingan yang sangat bagus dan praktis:
https://hacks.mozilla.org/2018/01/oxidizing-source-maps-with-rust-and-webassembly/
Namun, WebAssembly tidak memiliki akses DOM langsung, jadi meskipun kinerjanya unggul, Anda mungkin menemukan bahwa itu lebih lambat daripada JavaScript untuk kasus penggunaan Anda karena overhead I / O tambahan.
Untuk alasan ini, saat ini orang-orang menemukan paling sukses dengan WebAssembly untuk tugas algoritmik / komputasi intensif.
saya menyadari bahwa saya tidak tahu bagaimana memanipulasi dom di c ++. Apakah ada cara untuk melakukan ini menggunakan wasme?
Untuk memanipulasi DOM Anda harus melakukan ini melalui host JavaScript - modul WebAssembly Anda harus mengirim pesan ke JavaScript 'memintanya' untuk memanipulasi DOM atas namanya.
Karena ini adalah tantangan yang cukup umum, ada berbagai proyek komunitas yang memiliki solusi untuk masalah ini. Saat Anda menggunakan C ++, yang ini mungkin menarik bagi Anda:
https://github.com/mbasso/asm-dom
Di masa depan, ini akan menjadi lebih mudah, proposal seperti Jenis Antarmuka membuatnya lebih mudah untuk berinteraksi dengan lingkungan host dan dapat memungkinkan API Web dipanggil langsung dari WebAssembly.