Kısa süre önce bazı projelerim için Web Assembly kullanmaya başladım. Bunu yapıyorum çünkü wasm'in javascript'ten daha hızlı olduğunu duydum.
WebAssembly, JavaScript'ten daha hızlıdır, ancak yalnızca belirli kullanım durumları için. WebAssembly ile tarayıcınızın kodunuzu indirmek ve derlemek için daha az iş yapması gerekir, böylece daha hızlı başlatma süreleri sağlanır. Ancak, WebAssembly çalışma zamanı performansı genellikle JavaScript'ten yalnızca 2 ila 3 kat daha hızlı olduğunda. Çok iyi ve pratik bir karşılaştırma için aşağıdaki makaleye bakın:
https://hacks.mozilla.org/2018/01/oxidizing-source-maps-with-rust-and-webassembly/
Bununla birlikte, WebAssembly'nin doğrudan DOM erişimi yoktur, bu nedenle üstün performansına rağmen, ekstra G / Ç ek yükü nedeniyle kullanım durumunuz için JavaScript'ten daha yavaş olduğunu görebilirsiniz.
Bu nedenle, şu anda insanlar algoritmik / bilgi işlem yoğun görevler için WebAssembly ile en başarılı buluyor.
i nasıl c ++ dom manipüle bilmiyordum. Wasm kullanarak bunu yapmanın bir yolu var mı?
DOM'u manipüle etmek için bunu JavaScript ana makinesi aracılığıyla yapmanız gerekir - WebAssembly modülünüz JavaScript'e kendi adına DOM'yi manipüle etmesini 'isteyen' mesajlar göndermelidir.
Bu oldukça yaygın bir zorluk olduğundan, soruna çözüm getiren çeşitli topluluk projeleri vardır. C ++ kullandığınız için, bu ilginizi çekebilir:
https://github.com/mbasso/asm-dom
Gelecekte bu daha da kolaylaşacak, Arayüz Türleri gibi teklifler ana bilgisayar ortamıyla birlikte çalışmayı kolaylaştırıyor ve Web API'lerinin doğrudan WebAssembly'dan çağrılmasına izin verebilir.