在函数内调用require时是否会影响性能?
问题描述:
有没有做这个的任何性能影响:在函数内调用require时是否会影响性能?
// utils.js
module.exports = function() {/* do something */};
// then use it like this
function someTask(param) {
/* do something with param */
return require('./utils')(param);
}
难道仅仅是一种不好的做法或有任何性能差异?
答
号当你需要的东西它存储的是结果上require.cache
需要的键是你的程序的完整路径。随后对require的调用将简单地返回缓存模块。
如果需要从缓存中由于某种原因,删除模块,你可以做这样的:
delete require.cache[require.resolve('./utils')];
require.resolve
返回这是关键的是在高速缓存哪些模块的完整路径。从缓存中清除模块后,下一次拨打require
的电话将再次从光盘中拉出模块。
通常,为了提高可读性,在文件顶部执行您的需求可能是一种好的做法,但除了从缓存中返回模块所涉及的一小部分逻辑之外,我认为没有理由认为它是性能问题。
这是一个很好的和有效的问题。无视谁低估了你并投票结束。这不是主题。这里的人们总体上脾气暴躁而迂腐。 – Chev