gpt4 book ai didi

javascript - 为什么在这个 JavaScript 示例中移位比索引访问更快?

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:17 26 4
gpt4 key购买 nike

// Shifting the array and accessing 0
let sum = 0;
while(matrix.length > 0) {
sum += matrix[0][0];
matrix.shift();
}
// direct access
let sum = 0;
for (let i = 0; i < matrix.length; i++) {
sum += matrix[i][0];
}

https://jsperf.com/shift-vs-index-access

移动数组并访问 0 比直接访问上面 jsPerf 链接中给定的示例。

shift() 不是一个O(n) 操作吗?

最佳答案

不,它并不快。这只是你的基准被打破了。 shift() 操作清空 matrix 数组,在第一次迭代后,您将在空数组上比较代码。

当您对改变数据结构的代码进行基准测试时,您需要在每次测试运行时重新创建数据结构。 I've fixed your jsperf.com case正如预期的那样,shift 速度较慢(请注意,可能大部分执行时间都花在了 createMatrix 上,因此实际上它慢了 很多 ).

关于javascript - 为什么在这个 JavaScript 示例中移位比索引访问更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54457718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com