首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算Node.js包的加载时间惩罚?

如何计算Node.js包的加载时间惩罚?
EN

Stack Overflow用户
提问于 2018-05-09 07:45:21
回答 1查看 209关注 0票数 2

为了给出一些背景,我有兴趣学习如何优化运行在Google函数上的Node.js Express应用程序的冷启动时间。

到目前为止,我已经了解到冷启动的最大损失是使用require语句加载依赖项。作为一名软件工程师,一位科学头脑告诉我,它将基于文件的数量、文件的大小、依赖项的数量、缓存。然而,也许优化更多的是一门艺术而不是科学,所以任何来自你自己经验的建议或反馈都是最值得赞赏的。

我的问题是

  1. 如果我用两个const x = require('x')语句包围一个process.hrtime()并测量时间差,我会测量整个包加载时间'x‘吗?
  2. 如果是这样的话,这是否包括在此包中加载所有文件?这个包所需要的依赖关系如何--它们何时加载(这导致了我的第三个问题3)。
  3. 如果一个require语句位于一个条件块(例如if (condition) { const x = require('x'); } )中,那么它在什么时候被‘加载’,而‘加载’真正意味着什么(即在内存中、解析的、执行的等等)?在运行时,它会“加载”到语句(或未到达),还是不管程序何时开始执行,require是否会发生?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-09 07:47:37

是的,require只是一个普通的函数,如果它在内存中,或者加载它,这意味着读取文件、解析它并执行它(当然,它可能需要其他依赖项)。

对它进行基准测试是没有问题的(只需确保您测量文件的第一个需求,因为模块是缓存的)。

如果require在您的文件中,但没有执行(例如,因为它在if语句后面),它将不会比不在您的文件中有更多的效果。在到达语句之前加载是不会发生的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50248097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档