我知道未使用的Java / .NET导入不会影响性能。
但我也知道require()
(用于?)的实现只是在编译时拉取并连接整个所需的模块/文件,import
语句就是这种演变的一种演变。它真的不一样吗?会忘记导入列表中一个非常大的未使用的ES6模块会影响我应用的性能吗?
答案 0 :(得分:1)
是的,它肯定会影响性能,特别是如果您的非导出代码在模块中执行非常重要的操作或模块导入其他模块。第一次导入模块时,它将被执行一次(并且只执行一次)。根据规范:
http://www.ecma-international.org/ecma-262/6.0/#sec-abstract-module-records
如果此模块已经过评估,则不执行任何操作。除此以外, 传递性地评估该模块的所有模块依赖性然后 评估此模块