需要node.js模块在单个函数和全局函数中对性能的影响

我有一个node.js文件与几个function。 假设每个函数都需要下划线模块。 什么是对添加var underS = require("underscore");性能的影响var underS = require("underscore"); 在每一个函数与声明一个单独的var underS = require("underscore"); 全球在顶部? 哪个性能更好?

模块在第一次加载后被caching。 这意味着(除其他外)每个调用require('foo')将返回完全相同的对象,如果它将parsing为相同的文件。

所以基本上没有,它不会影响性能。

我只是想在一个精确的答案上添加一个广义的答案。

不要让性能影响广泛的代码库组织,除非你认真地有一个好的(测量的)理由不要。

在这方面“测量”并不意味着一些微观基准。 这意味着在您的实际项目的背景下进行分析。

在我的职业生涯早期忽略这个规则让我难以忍受。 它并没有帮助我编写高效的代码,它使我的代码库难以维护,难以坚持下去(我认为往往被人们忽视的激励人的素质),从而将生产力降低到最低程度。

所以在“否”之上,你不用担心导入模块的性能,我会更强烈地build议“不”,即使影响性能,也不要担心。

如果您想要devise性能,性能关键的代码库往往只占代码库的一小部分。 我们很有可能把它看作是一堆无用的效率低下而产生瓶颈,但养成分析的习惯很快就会消除这种迷信。 在你的代码库的less部分,你可能会非常详细,甚至可能在本地代码中实现一些。 在这里,对于你的代码库这个小小的部分,你可以学习计算机体系结构,面向数据的devisecaching局部性,SIMD等。你可以非常精细地优化那些实际上构成分析热点的小部分代码。

但是,计算速度的关键首先是您自己的开发人员通过缩小范围并专注于更重要的优先级来有效地生成和维护代码的速度。 这就是您花时间放大实际上构成测量热点的那些小部件的时间,并为您提供了尽可能多地优化它们的时间。 首先是生产力,这是来自于一个在竞争性performance往往是追求品质(网格处理,光线追踪,image processing等)之一的领域工作的人。