WebAssembly - JavaScript

Ce chapitre répertorie la comparaison entre WebAssembly et Javascript.

Javascript est un langage que nous avons beaucoup utilisé dans le navigateur. Désormais, avec la version WebAssembly, nous pouvons également utiliser WebAssembly dans le navigateur.

La raison pour laquelle WebAssembly a vu le jour n'est pas pour remplacer javascript, mais pour prendre en charge certaines choses difficiles à gérer avec javascript.

For example

Il est difficile de faire en sorte que les tâches telles que la reconnaissance d'image, les applications de CAO, l'augmentation de la vidéo en direct, la réalité virtuelle et augmentée, les applications musicales, la visualisation et la simulation scientifiques, les jeux, l'édition d'images / vidéo, etc. soient effectuées avec javascript.

En utilisant des langages de haut niveau comme C / C ++, Rust, qui peuvent maintenant être compilés en WebAssembly, il est facile de faire la tâche mentionnée ci-dessus. WebAssembly génère un code binaire qui est facile à exécuter dans le navigateur.

Voici donc la liste des comparaisons effectuées entre Javascript et WebAssembly.

Paramètres Javascript WebAssembly

Codage

Vous pouvez facilement écrire du code en Javascript. Le code écrit est lisible par l'homme et enregistré au format .js. Lorsqu'il est utilisé dans le navigateur, vous devez utiliser une balise <script>.

Le code peut être écrit au format texte dans WebAssembly et il est enregistré au format .wat. Il est difficile d'écrire le code au format .wat. Il est préférable de compiler le code à partir d'un autre langage de haut niveau au lieu d'écrire depuis le début en .wat.

Vous ne pouvez pas exécuter le fichier .wat dans le navigateur et devez le convertir en .wasm à l'aide des compilateurs ou des outils en ligne disponibles.

Exécution

Le code écrit en javascript lorsqu'il est utilisé dans le navigateur doit être téléchargé, analysé, compilé et optimisé.

Nous avons du code WebAssembly au format .wasm déjà compilé et au format binaire.

Gestion de la mémoire

Javascript attribue de la mémoire lorsque, des variables sont créées et la mémoire est libérée lorsqu'elle n'est pas utilisée et est ajoutée au garbage collection.

La mémoire de WebAssembly est un tampon de tableau qui contient les données. Vous pouvez allouer de la mémoire à l'aide de l'API Javascript WebAssembly.memory ().

La mémoire WebAssembly est stockée dans un format de tableau, c'est-à-dire un modèle de mémoire plate qui est facile à comprendre et à exécuter.

L'inconvénient du modèle de mémoire dans WebAssembly est -

  • Un calcul complexe prend du temps.

  • Webassembly ne prend pas en charge le garbage collection qui n'autorise pas la réutilisation de la mémoire et la mémoire est gaspillée.

Temps de chargement et performances

Dans le cas de javascript, lorsqu'il est appelé dans le navigateur, le fichier javascript doit être téléchargé et analysé. Plus tard, l'analyseur convertit le code source en bytecode que le moteur javascript exécute le code dans le navigateur.

Le moteur Javascript est très puissant et par conséquent, le temps de chargement et les performances de javascript sont très rapides par rapport à WebAssembly.

L'un des objectifs les plus importants de WebAssembly est d'être plus rapide que JavaScript.Le code Wasm généré à partir de langages de haut niveau est de plus petite taille et, par conséquent, le temps de chargement est plus rapide.

Mais, des langages comme GO, lorsqu'ils sont compilés en wasm, produisent une grande taille de fichier pour un petit morceau de code.

WebAssembly est conçu de telle manière qu'il est plus rapide dans la compilation et peut fonctionner sur tous les principaux navigateurs. WebAssembly doit encore apporter de nombreuses améliorations en termes de performances par rapport à javascript.

Débogage

Javascript est lisible par l'homme et peut être débogué facilement. L'ajout de points d'arrêt à votre code javascript dans le navigateur vous permet de déboguer facilement le code.

WebAssembly fournit le code au format texte, qui est lisible mais qui reste très difficile à déboguer. Firefox vous permet de visualiser le code wasm au format .wat dans le navigateur.

Vous ne pouvez pas ajouter de points d'arrêt dans .wat et c'est quelque chose qui sera disponible à l'avenir.

Prise en charge du navigateur

Javascript fonctionne bien dans tous les navigateurs.

Tous les principaux navigateurs Web prennent en charge WebAssembly.