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?
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.
, 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.
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 .
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.