如果在节点模块中使用“全局”或“需求”,性能会有差异吗?

问题描述

可以说,我们有节点app.js

let lib= require("./big_library.js");
...
// some logic here,using myLib //
...
global.myLib = lib;
let other= require("./other.js");

,在other.js模块中,我们有:

let lib= require("./big_library.js");
//or it's better :  lib = global.myLib;

所以,我的问题直接与理论性能效应有关。使用global.myLib会提高性能(访问库),而不是在每个模块中都增加require吗?

解决方法

第二个需求的成本是查找其内部缓存以查看模块是否已解决的成本。

但是我不仅仅考虑表演。关于订单。保证在您首次调用它时执行一次。不管您在哪里叫它。

另一方面,如果您开始依赖显式的顺序(设置变量始终先于其用法),那么您迟早会为此受到打击。