存储在变量中会增加性能吗?并做变量,让,const也会影响性能



例如,在节点应用中,使用express,而不是使用:

app.listen(3000);

我们使用:

const port = 3000;
app.listen(port)

尽管不管有多小,它会提高性能吗?例如,我听说它改善了循环的性能。

和非主题:app.listen((函数不是一个循环吗?还是使用内置循环?

也用VAR,LET或CONST声明在性能方面是否有所不同?例如,由于用const声明 - 而不是var或let - 意味着将变量"端口"未触及,它会产生任何效果吗?

no,仅通过将值存储在变量中不会增加性能,实际上,由于发生了其他内存分配和获取,因此性能会略有降低。

但是,将计算的结果存储在变量中并使用变量而不是重新计算它,每次需要时都可以改善性能。

app.listen(3000)转换为以下格式没有任何性能好处。

const port = 3000;
app.listen(port)

但是,如果port值需要一些计算,例如

const port = process.env.PORT || 3000;

然后将结果存储在变量中,并每次需要端口号都使用该值,而每次都将具有性能优势。

(在您的示例中,由于port值仅使用一次,因此将结果存储在变量中是没有意义的。(

我听说,例如,它提高了循环的性能。 同样,只有在变量中存储的值需要某种形式的计算时,您才具有性能优势。

const array = [1,2,3];
const length = array.length;
for (let i =0 ;i<length; i++) {
  console.log(array[i]);
}

与以下示例相比,上面的示例具有性能优势。

const array = [1,2,3];
for (let i =0 ;i<array.length; i++) {
  console.log(array[i]);
}

在此示例中,在循环的每一个迭代中,都必须计算数组的长度,这是不必要的,因为数组不更改。

和非主题:app.listen((函数不是一个循环吗?还是使用内置循环?

不,app.listen()不是循环。这是一个活动听众。在内部,节点事件循环处理这样的I/O操作。您可以在此处阅读有关事件循环的更多信息。

最新更新