【发布时间】:2012-10-01 21:49:21
【问题描述】:
我有一个使用mocha.js 的测试套件,我运行它以确保一切正常。对于我需要的每个模块,我注意到测试时间增加了大约 100 毫秒。这是在具有 8GB 内存的强大四核机器上实现的。
调用require 的实际成本是多少?它会影响应用程序性能还是仅测试性能?
如果相关的话,节点的版本是0.8.11。
【问题讨论】:
标签: unit-testing node.js requirejs require mocha.js
我有一个使用mocha.js 的测试套件,我运行它以确保一切正常。对于我需要的每个模块,我注意到测试时间增加了大约 100 毫秒。这是在具有 8GB 内存的强大四核机器上实现的。
调用require 的实际成本是多少?它会影响应用程序性能还是仅测试性能?
如果相关的话,节点的版本是0.8.11。
【问题讨论】:
标签: unit-testing node.js requirejs require mocha.js
Require 成本很高,因为它不会在任何静态分析期间执行。它需要做几件事,它会同步,在未定义的时间段内阻塞你的程序:
您不应在任何非顶级代码中使用require,除非您准备为增加执行时间付出代价,否则在测试之前要求所有内容。
在非常古老的 Node.JS 中曾经有一个异步版本的 require,不幸的是它似乎不再存在了。
【讨论】:
require'd,它就会被缓存,随后对同一模块的require() 调用将非常快,因为它不必重新加载或编译。