我使用的是相当大的,性能密集型方案的NodeJS来生成CJK字体提示的数据(sfdhanautohint),以及一些更好的依赖性跟踪我不得不结束了从一个makefile调用程序的NodeJS数万次这样。
这立即让我担心这样做实际上会在启动和预热 JIT 引擎时产生大量开销,因此我决定ngen.exe为 nodejs寻找类似的东西。看起来 V8已经对代码缓存有了一些支持,但是我可以做些什么来在 NodeJS 中使用它?
kProduceCodeCache在 NodeJS 的 GitHub 存储库中搜索不会返回任何非捆绑的 v8 结果。也许是时候提出功能请求了……
是的,这会自动发生。第一次运行代码时,Node 5.7.0+ 会自动预缓存(为源代码预热 JIT 引擎)(自 PR #4845 / 2016 年 1 月起,此处:https ://github.com/nodejs/node/pull /4845)。
值得注意的是,您甚至可以预热(在您的代码在机器上运行之前,您可以预先缓存您的代码并告诉 Node 加载它)。
Andres Suarez 是一位从事 Yarn、Atom 和 Babel 工作的 Facebook 开发人员,他创建了v8-compile-cache,这是一个很小的模块,它将 JIT 你的代码和 require(),并将你的 Node 缓存保存到你的 $TMP 文件夹中,并且如果找到的话就使用它。查看源代码,了解它是如何满足其他需求的。
如果您愿意,您可以在启动时进行一些检查,如果机器架构位于您的缓存文件集中,则只需加载缓存文件,而不是让 Node JIT 处理所有内容。对于具有大量需求的现实大型项目,这可以将您的加载时间减少一半或更多,并且可以在第一次运行时做到这一点
非常适合加速容器并使它们的“微服务”启动时间低于 500 毫秒。
需要注意的是:
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |