23 votes

La Fléchette VM encore utilisé?

J'ai été en utilisant dart/flutter pour quelques projets, et je suis vraiment en profiter.

J'ai lu que lors de la construction d'une application mobile, dart construit une application native avec le code natif. Mais j'ai aussi lu que dart a sa propre machine virtuelle pour la performance.

Ce que j'essaie de comprendre, c'est que si la VM est ce qui est utilisé lorsque vous créez une application mobile, ou est-il la construction d'un autre code qu'il compile pour l'application native. Et si son de faire quelque chose d'autre, qu'est-ce que la VM dart toujours est-il utilisé?

51voto

Vyacheslav Egorov Points 4198

Réponse courte: oui, Dart VM est toujours utilisé lorsque vous construisez votre application mobile.

Maintenant répondent plus: VM Dart a deux modes de fonctionnement différents JIT et AOT un.

Dans le JIT mode Dart VM est capable de charger dynamiquement Dart source, l'analyse et la compilation de ce code machine natif à la volée pour l'exécuter. Ce mode est utilisé lorsque vous développez votre application et offre des fonctionnalités telles que le débogage, la chaude de rechargement, etc.

Dans le AOT mode Dart VM ne prend pas en charge le chargement dynamique/analyse/compilation de Dart le code source. Il prend uniquement en charge le chargement et l'exécution pré-compilé en code machine. Cependant, même pré-compilé en code machine a encore besoin de machine virtuelle pour exécuter, parce que VM fournit un système d'exécution qui contient garbage collector, divers natif méthodes nécessaires pour dart:* des bibliothèques de la fonction, la durée d'exécution des informations de type, méthode dynamique de recherche, etc. Ce mode est utilisé dans votre application déployée.

Où est pré-compilé en code machine pour la AOT mode vient de la? Ce code est généré par (un mode spécial de l') VM à partir de votre Flutter application lorsque vous construisez votre application dans le mode de libération.

Vous pouvez en savoir plus sur la façon Dart VM exécute Dart code ici.

11voto

Wm Leler Points 151

Lorsque la VM Dart est utilisé en mode de diffusion, il n'est pas vraiment une VM (machine virtuelle) dans le sens traditionnel d'un ordinateur virtuel processeur de mise en œuvre de logiciels, qui a son propre langage machine qui est différent du matériel du langage machine.

C'est ce qui provoque la confusion dans la question d'origine. En mode release, le Dart VM est, fondamentalement, une bibliothèque d'exécution (pas très différente de celle des bibliothèques d'exécution requis par l'ensemble de haut niveau de langues).

0voto

Randal Schwartz Points 9756

La VM Dart est parfaite pour les applications côté serveur, en utilisant en particulier dart:io d'accéder à des fichiers locaux, des processus, et des prises.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X