Compiler JavaScript en code natif avec V8

Est-il vraiment possible, avec le moteur V8 de Google, de compiler JavaScript en Code natif, de l'enregistrer en tant que fichier binaire et de l'exécuter quand je veux via mon logiciel envorinment, sur n'importe quelle machine?

21
demandé sur Alon Gubkin 2010-06-03 02:58:26

4 réponses

Vous pouvez utiliser la fonctionnalité snapshot V8 pour précompiler le code. Cela signifie toujours que vous devez avoir une version complète de V8 en cours d'exécution pour charger l'instantané (c'est-à-dire que vous n'obtenez pas de code natif autonome, il doit s'exécuter dans la machine virtuelle V8), donc tout ce que vous Enregistrez est le temps de compilation. En outre, la qualité du code d'instantané n'est pas nécessairement aussi bonne que le code JIT'ed parce que le code JIT peut utiliser, par exemple, SSE2/SSE3 s'il est disponible, ce que les instantanés ne peuvent pas supposer.

25
répondu Lasse Reichstein 2010-06-22 12:40:10

, autant Que je sache, V8 est purement une " juste-à-temps compilateur, et n'a pas de à l'avance option.

Comme discuté dans les articles que j'ai liés, les JIT permettent de meilleures optimisations plus flexibles.

4
répondu Matthew Flaschen 2010-06-02 23:02:19

Au Lieu de cela, il pourrait être possible d'utiliser un compilateur .net JavaScript/JScript pour créer un. net exe, puis convertir le. net exe en un natif.exe en utilisant le compilateurMono à l'avance .

3
répondu Jack Nock 2011-11-24 00:08:02

Au lieu d'utiliser V8, vous pouvez compiler JavaScript en Python en utilisant Js2Py, puis convertir la source Python en C++ en utilisant le compilateur ShedSkin. Je n'ai pas encore testé cette approche, mais c'est néanmoins une possibilité intéressante.

0
répondu Anderson Green 2015-07-09 02:29:43