Maison  >  Article  >  interface Web  >  À quoi ressemble le moteur JS lorsqu'il tourne ?

À quoi ressemble le moteur JS lorsqu'il tourne ?

php中世界最好的语言
php中世界最好的语言original
2017-12-04 13:49:142252parcourir

Nous savons que le moteur dit JavaScript est une machine virtuelle spécialisée dans le traitement des scripts JavaScript. Il est généralement inclus avec les navigateurs Web et est utilisé pour analyser et exécuter des scripts JavaScript. Analysons donc aujourd'hui en détail à quoi ressemble le moteur JS lorsqu'il fonctionne.

La machine virtuelle JavaScript est une machine virtuelle de processus. L'une de ses fonctionnalités est un jeu d'instructions virtuelles (ISA).

Le moteur JavaScript le plus populaire est bien sûr le moteur V8 de Google. Le moteur V8 est utilisé dans Chrome et Node, mais contrairement aux autres moteurs JavaScript, le V8 utilise uniquement un compilateur JIT et n'utilise pas Interpreter pour exécuter les implémentations JavaScript. Voici un schéma simple pour illustrer leur relation :

Ce moteur est principalement composé de deux parties regroupées en :

Tas mémoire : C'est là que se produit l'allocation de mémoire. Stack : C'est ici que votre code est exécuté

Runtime

Certaines API du navigateur sont souvent utilisées (par exemple : setTimeout), mais ces API ne sont pas fournies par le moteur. Alors, d’où venaient-ils ? En fait, la situation réelle ici est un peu compliquée.

Dans l'image ci-dessus, lorsque le thread principal est en cours d'exécution, un tas et une pile sont générés. Le code dans la pile appelle diverses API externes, qui se trouvent dans la « File d'attente des tâches ». Ajoutez divers événements (cliquez, chargez, terminé). Tant que le code de la pile est exécuté, le thread principal lira la "file d'attente des tâches" et exécutera les fonctions de rappel correspondant à ces événements dans l'ordre.

Le code dans la pile d'exécution (tâche synchrone) est toujours exécuté avant de lire la "file d'attente des tâches" (tâche asynchrone).

En plus de placer des événements pour les tâches asynchrones, la "file d'attente des tâches" peut également placer des événements chronométrés, c'est-à-dire spécifier combien de temps certains codes seront exécutés après.

Nous avons donc également de nombreuses API en dehors du moteur, que nous appelons l'API Web fournie par le navigateur, comme DOM, AJAX, setTimeout, etc.

Pour résumer, au sens figuré, le moteur JavaScript est une machine qui peut fonctionner, et la machine virtuelle JavaScript est le noyau d'exécution de cette machine, et le runtime JavaScript est la machine.


Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Résumé du framework front-end js et explication de ses utilisations

Comment utiliser le Méthode jssplice() dans le développement JS

Étapes d'implémentation de la programmation DOM en html5

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn