例如,在节点应用中,使用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操作。您可以在此处阅读有关事件循环的更多信息。