发布于 2026-01-06 1 阅读
0

使用 Performance.now() 对 'for'、'while'、'for...of' 和 'Array.forEach' 进行基准测试

使用 Performance.now() 对 'for'、'while'、'for...of' 和 'Array.forEach' 进行基准测试

现在,我们来聊聊 JavaScript 中的循环!众所周知,循环有很多种实现方式。开发者常用的一些方法包括:

开发者喜欢使用它,Array.forEach因为它简单易用。但是,你有没有想过为什么我们有这么多循环选项?为什么不去掉其他的,只保留最好的那个呢?

现在,让我们使用Performance.now()进行一些性能测试!

基准测试

以下是用于基准测试的测试用例和循环。

测试用例

const iterations = ITERATION_TOTAL // 10, 100, 10000, 1000000, 10000000
const myArray = Array.from(Array(iterations).keys())

let total = 0

const start = performance.now()

// Looping method will be here

const end = performance.now()

console.log(`It took ${end - start} ms.`);
Enter fullscreen mode Exit fullscreen mode

为了

for (let i = 0; i < myArray.length; i++) {
  total += myArray[i]
}
Enter fullscreen mode Exit fullscreen mode

尽管

let i = 0

while (i < myArray.length) {
  total += myArray[i]
  i++
}
Enter fullscreen mode Exit fullscreen mode

对于……

for (const item of myArray) {
  total += item
}
Enter fullscreen mode Exit fullscreen mode

数组.forEach

myArray.forEach((item) => {
  total += item
})
Enter fullscreen mode Exit fullscreen mode

测试使用Node.js v18.17.0版本运行。每个循环都测试了不同的迭代次数:10、100、10,000、1,000,000 和 10,000,000。我计算了每次迭代的平均时间。

结果

以下是每次循环及其迭代次数的结果(数值越低越好):

10 次迭代

Javascript 循环 10 次迭代

100 次迭代

Javascript 循环 100 次迭代

10,000 次迭代

Javascript 循环,迭代 10000 次

1,000,000 次迭代

Javascript 循环 1000000 次迭代

10,000,000 次迭代

Javascript 循环 10000000 次迭代

结论

对于前端来说,使用任何循环方法(for,,,和)都是可以的while因为大多数网站在一个页面上通常不会显示超过 10,000 个项目。for...ofArray.forEach

但是,在后端处理、代码验证、代码检查等方面,for循环while仍然是最佳选择!🚀

所以,并非所有对开发者来说很酷很方便的东西都对项目最有利。这其中可能需要权衡取舍。✨

文章来源:https://dev.to/maafaishal/benchmarking-for-while-forof-and-arrayforeach-using-performancenow-1jjg