NodeJs虚拟机 – 保存编译的代码…到磁盘?

从http://nodejs.org/api/vm.html :

JavaScript代码可以立即编译并运行,也可以编译,保存并稍后运行 。 […]返回的脚本没有绑定到任何全局对象 。 在每次运行之前,它都会被绑定,只是为了运行。

然后在API中,没有返回任何字节的方法,什么都没有。 只是一个“脚本”对象。

那么,在我礼貌地把这个桌子放在怀里之前,有什么办法可以把编译的脚本保存到磁盘上? 我认为这只是普通的原始二进制数据,也许是一个语法树或其他。

你所引用的函数是javascript在一个新的上下文中运行(所以它可以是安全的,有新的function等)…不是太多的保存预编译的二进制文件…

如果您想了解如何实际重新加载预编译脚本的详细信息,可以查看node.js源代码。 ' node.js '文件本身是预编译的,并以二进制forms加载(如果使用此选项构build它)。 这样做会使节点启动得更快。

但是,你应该牢记的是,除非你想象一个使用V8库的特定进程(比如node.js)来运行/停止/运行/停止等, ,V8库只会编译一次你的脚本,然后每次都会把它作为机器代码执行,或者只要V8库运行。

预编译和二进制加载会带来一些明显的缺点,包括依赖程序体系结构(甚至在x86 32位和x86_64之间)等等。 所以 – 这可能不是最好的devise决定。