IT虾米网

javascript之NodeJS 循环优化

zlslch 2023年12月18日 编程语言 232 0

我知道在浏览器中,按照

 for(var i=0, l=arr.length; i<l; i++){ } 

代替

 for(var i=0; i<arr.length; i++){ } 

但是在NodeJS中是这样还是V8引擎优化了呢?

我知道 ecma-262 5.1 sec-15.4数组长度定义如下:

The value of the length property is numerically greater than the name of every property whose name is an array index; whenever a property of an Array object is created or changed, other properties are adjusted as necessary to maintain this invariant.

因此,如果长度不变,则此方法变慢的唯一原因是您必须访问该属性。我正在寻找的是一个合理的示例/解释,它可以显示 V8 引擎(在 NodeJS 中使用)在访问此属性时是否会受到性能影响。

请您参考如下方法:

如果 arr 是一个纯局部变量并且循环不以任何方式触及它,那么是的。然而,即使优化失败,由于 CPU 缓存的缘故,一遍又一遍地加载相同的字段实际上也不会花费任何成本。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!