Node.js Require Tip

注意Require 是同步 I/O 操作。

Node.js 的包管理函数 require 是 Node 少有的同步函数。这就意味着 Node 在加载包的时候其他操作的被阻塞住的。所以假设要是加载一个巨大的包的话,整个程序都要停下来等这个包加载完毕。虽然 Node 有 cache 支持再次调用同一个模块,不会再读取硬盘,但是 require 还是会有一些寻址操作。所以我们要让一些被频繁调用的代码少用或者不用 require,而是在程序初始化时就加载好。比如不要在处理 http request 的地方使用 require,不然每次一个 request 来到就调用一次 require,就算使用 cache 对性能也有一些影响。