如何在后续的 Node 运行中重用 V8 JIT 优化?
How to re-use V8 JIT optimizations in subsequent Node runs?
我打算 运行 node somefile.js
多次。
大概每次我用 Node 执行这个文件时,它都会 JIT 编译脚本并执行其他优化。
可悲的是:每次执行完成,它都会忘记它所做的所有工作。
我有什么办法可以保留之前 运行 V8 产生的优化,并将它们应用到后续 运行?
Saving/loading 的 v8 编译代码很复杂,而且很少有正当理由,因为与裸编译代码相比,要保存的信息要多得多,而且 v8 需要很少的时间来优化和编译(好吧,还有温暖的-up,但执行优化代码之前的总体时间很少那么长)。
所以您在主线 v8 中没有要求的东西。
然而,您可以为 v8 提供 --always-opt
选项,并且还有一种方法可以强制在下次调用时优化特定函数。只有当你的功能稳定时,你才应该这样做。
我打算 运行 node somefile.js
多次。
大概每次我用 Node 执行这个文件时,它都会 JIT 编译脚本并执行其他优化。
可悲的是:每次执行完成,它都会忘记它所做的所有工作。
我有什么办法可以保留之前 运行 V8 产生的优化,并将它们应用到后续 运行?
Saving/loading 的 v8 编译代码很复杂,而且很少有正当理由,因为与裸编译代码相比,要保存的信息要多得多,而且 v8 需要很少的时间来优化和编译(好吧,还有温暖的-up,但执行优化代码之前的总体时间很少那么长)。
所以您在主线 v8 中没有要求的东西。
然而,您可以为 v8 提供 --always-opt
选项,并且还有一种方法可以强制在下次调用时优化特定函数。只有当你的功能稳定时,你才应该这样做。