使用Google的V8引擎,是否真的可以将JavaScript编译为本机代码,将其保存为二进制文件,并在任何计算机上随时随地执行它?
答案 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。我还没有测试过这种方法,但它仍然是一种有趣的可能性。