【发布时间】:2020-07-06 08:39:11
【问题描述】:
var t1 = new Date().getTime()
for (let i = 0; i < 100; i++) {
for (let j = 0; j < 1000; j++) {
for (let k = 0; k < 10000; k++) {
}
}
}
var t2 = new Date().getTime()
console.log('first time', t2 - t1)
for (let i = 0; i < 10000; i++) {
for (let j = 0; j < 1000; j++) {
for (let k = 0; k < 100; k++) {
}
}
}
var t3 = new Date().getTime()
console.log('second time', t3 - t2)
如您所见,上述两个 for 循环的执行时间似乎相同。但事实上,第二个循环将比第一个循环花费更多的时间来执行。引擎盖下有何不同?
【问题讨论】:
-
你能从上面的代码中添加一些输出吗?
-
切换循环的顺序不会改变我的结果,所以我猜在 100 次循环中循环 1000 次比在 1000 次循环中循环 100 次更高效
-
JavaScript 实现可以在运行代码之前免费优化代码。这可能是优化方面的差异。但这完全无关紧要,因为代码无论如何都不做任何事情。如果您在最内层循环中执行某些操作,则处理时间可能大致相同。
-
@schteppe 第一次是 257,第二次是 586 在我的控制台中。
标签: javascript performance for-loop nested-for-loop