node.js中require()的成本是多少?

时间:2012-10-11 09:07:26

标签: unit-testing node.js requirejs require mocha

我有一个使用mocha.js的测试套件,我运行它以确保一切正常。对于我需要的每个模块,我注意到测试时间增加了大约100ms。这是一款功能强大的四核机器,内存为8GB。

调用require的实际成本是多少,是否会影响应用程序性能或仅测试性能?

如果相关,则节点版本为0.8.11

1 个答案:

答案 0 :(得分:7)

要求非常昂贵,因为在任何静态分析期间都不会执行。它需要执行几项操作,它会同步,在未定义的时间段内阻止您的程序:

  • 它需要找到您需要的模块,这可能导致大量文件操作 - 包括路径搜索,统计,打开。
  • 它需要读取javascript文件,解析它,编译它的一部分并在执行期间 require 它遇到的任何依赖项 - 所以再次第一点。

您不应在任何非顶级代码中使用require,在测试之前需要一切,除非您准备支付增加执行时间的代价。

在很老的Node.JS中曾经存在require的异步版本,不幸的是它似乎不再存在。