ran*_*ran 5 javascript arrays firefox v8 shift
// Shifting the array and accessing 0
let sum = 0;
while(matrix.length > 0) {
sum += matrix[0][0];
matrix.shift();
}
Run Code Online (Sandbox Code Playgroud)
// direct access
let sum = 0;
for (let i = 0; i < matrix.length; i++) {
sum += matrix[i][0];
}
Run Code Online (Sandbox Code Playgroud)
https://jsperf.com/shift-vs-index-access
在上面的jsPerf链接的给定示例中,移动数组并访问0比直接访问更快.
这不是shift()一个O(n)操作?
不,它并不快.这只是你的基准被破坏了.该shift()操作清空了matrix数组,在第一次迭代后,您将比较空数组上的代码.
在对变更数据结构的代码进行基准测试时,需要在每次测试运行时重新创建数据结构.我已经修复了你的jsperf.com案例并且正如预期的那样shift慢(注意可能花费大部分执行时间createMatrix,所以事实上它要慢很多).
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |