在函数内调用 require 时是否有任何性能影响



这样做对性能有什么影响吗:

// utils.js
module.exports = function() {/* do something */};
// then use it like this
function someTask(param) {
   /* do something with param */
   return require('./utils')(param);
}

这只是一种不好的做法还是存在任何性能差异?

No.当您需要某些内容时,它会将该需求的结果存储在require.cache上,键是模块的完整路径。后续调用 require 将仅返回缓存的模块。

如果出于某种原因需要从缓存中删除模块,则可以这样做:

delete require.cache[require.resolve('./utils')];

require.resolve返回模块的完整路径,即缓存上的键。从缓存中清除模块后,下一次调用require将再次从磁盘中提取模块。

一般来说,为了

可读性,在文件顶部满足您的要求可能是一种很好的做法,但除了从缓存返回模块所涉及的一点逻辑之外,我认为没有理由将其视为性能问题。

相关内容

最新更新