使用V8将JavaScript编译为本机代码

时间:2010-06-02 22:58:26

标签: javascript c++ v8 native-code

使用Google的V8引擎,是否真的可以将JavaScript编译为本机代码,将其保存为二进制文件,并在任何计算机上随时随地执行它?

4 个答案:

答案 0 :(得分:25)

您可以使用V8快照功能预编译代码。这仍然意味着您必须运行完整版本的V8来加载快照(即,您没有获得独立的本机代码,它需要在V8 VM中运行),因此您节省的只是编译时间。 此外,快照代码的质量不一定与JIT代码一样好,因为JIT代码可以使用例如SSE2 / SSE3(如果可用),哪些快照不能假设。

答案 1 :(得分:4)

据我所知,V8纯粹是just-in-time编译器,没有ahead-of-time选项。

正如我所链接的文章所讨论的那样,JIT允许更好,更灵活的优化。

答案 2 :(得分:3)

相反,可以使用.NET JavaScript / JScript编译器创建.NET exe,然后使用Mono ahead-of-time compiler将.NET exe转换为本机.exe。

答案 3 :(得分:0)

您可以使用Js2Py将JavaScript编译为Python,然后使用ShedSkin compiler将Python源转换为C ++,而不是使用V8。我还没有测试过这种方法,但它仍然是一种有趣的可能性。