Open leeenx opened 7 years ago
理论上说,数组长度对访问数组成功的性能不会有任何影响,因为数组的访问是直接通过地址访问的跟数组本身长度没有关系。我写了一个测试用例:https://jsperf.com/diff-len-array-getter
下面是 chrome 的截图:
下面是 safari 的截图:
从数据上说明了,数组长度对访问数组成员不会造成性能上的影响。
理论上说,对数组长度也不应该影响到数组成员的赋值操作。同样的,我写了一个测试用例:https://jsperf.com/diff-len-array-setter/1
以下是 chrome 的截图:
以下是 safari 的截图:
从截图上的数据分析是符合理论上的说法的。也就是:数组长度对数组成员赋值不会造成性能上的影响。 个人觉得数组长度是对赋值操作产生了一个微量影响,从上面的运行结果可以看到 length == 100000 时,数字低了 4~5%。不过数字太小可以算做误差内吧。
数组长度对访问数组成员的性能影响
理论上说,数组长度对访问数组成功的性能不会有任何影响,因为数组的访问是直接通过地址访问的跟数组本身长度没有关系。我写了一个测试用例:https://jsperf.com/diff-len-array-getter
下面是 chrome 的截图:
下面是 safari 的截图:
从数据上说明了,数组长度对访问数组成员不会造成性能上的影响。
数组长度对数组成员赋值的性能影响
理论上说,对数组长度也不应该影响到数组成员的赋值操作。同样的,我写了一个测试用例:https://jsperf.com/diff-len-array-setter/1
以下是 chrome 的截图:
以下是 safari 的截图:
从截图上的数据分析是符合理论上的说法的。也就是:数组长度对数组成员赋值不会造成性能上的影响。 个人觉得数组长度是对赋值操作产生了一个微量影响,从上面的运行结果可以看到 length == 100000 时,数字低了 4~5%。不过数字太小可以算做误差内吧。