午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

有人測試了 JS 中所有循環的速度!來看看JS 中最快的循環是什么?

admin
2025年2月21日 16:10 本文熱度 796

昨天看到有一位國外的大佬測試了 JS 中所有 【循環操作】 的性能消耗和執行速度。

涉及到的 API 包含:for 循環、while 循環、ForEach、Map、Filter 等在內的 十余種 API。

但是需要注意:以下測試內容【僅供參考】。因為實際的開發中,涉及到的場景要復雜的多,不能通過這種簡單的測試一概而論!

讓我們來看一看吧!

涉及到的 API 一覽:For 循環、While 循環、Do-While 循環、For-Of、forEach、map、filter、reduce、some、every、find 

測試方案

在測試中,將使用 console.time() 和 console.timeEnd() 方法來測量 API 的執行時間。偽代碼如下:

console.time ('描述信息'
// 要測量的代碼
console.timeEnd ('描述信息'

測試任務是:將 5000 萬個數據從一個數組轉移到另一個數組。 通過執行時間,來判斷性能。

其中每個執行都將 異步 進行,以保證互不干擾。

執行代碼

// 生成隨機數據
const numbersList = Array.from({ length50_000_000 }, () =>
  Math.floor(Math.random() * 100)
)

// For 循環
const usingForLoop = async (array) => {
  console.time('For 循環')

  const newNumbersList = []
  for (let i = 0; i < array.length; i++) {
    newNumbersList.push(array[i])
  }

  console.timeEnd('For 循環')
}

// While 循環
const usingWhile = async (array) => {
  console.time('WHILE')

  let i = 0
  const newNumbersList = []
  while (i < array.length) {
    newNumbersList.push(array[i])
    i++
  }

  console.timeEnd('WHILE')
}

// Do-While 循環
const usingDoWhile = async (array) => {
  console.time('DO WHILE')

  let i = 0
  const newNumbersList = []
  do {
    newNumbersList.push(array[i])
    i++
  } while (i < array.length)

  console.timeEnd('DO WHILE')
}

// For-Of 循環
const usingForOf = async (array) => {
  console.time('FOR OF')

  const newNumbersList = []
  for (const item of array) {
    newNumbersList.push(item)
  }

  console.timeEnd('FOR OF')
}

// ForEach 循環
const usingForEach = async (array) => {
  console.time('forEach')

  const newNumbersList = []
  array.forEach((item) => newNumbersList.push(item))

  console.timeEnd('forEach')
}

// Map 循環
const usingMap = async (array) => {
  console.time('map')

  const newNumbersList = array.map((number) => number)

  console.timeEnd('map')
}

// Filter 循環
const usingFilter = async (array) => {
  console.time('filter')

  const newNumbersList = array.filter((item) => true)

  console.timeEnd('filter')
}

// Reduce 循環
const usingReduce = async (array) => {
  console.time('reduce')

  const newNumbersList = array.reduce((acc, item) => {
    acc.push(item)
    return acc
  }, [])

  console.timeEnd('reduce')
}

// Some 循環
const usingSome = async (array) => {
  console.time('some')

  const newNumbersList = []
  array.some((item) => {
    newNumbersList.push(item)
    return false
  })

  console.timeEnd('some')
}

// Every 循環
const usingEvery = async (array) => {
  console.time('every')

  const newNumbersList = []
  array.every((item) => {
    newNumbersList.push(item)
    return true
  })

  console.timeEnd('every')
}

// Find 循環
const usingFind = async (array) => {
  console.time('find')

  const newNumbersList = []
  array.find((item) => {
    newNumbersList.push(item)
    return false
  })

  console.timeEnd('find')
}

// 執行循環操作
;(async () => {
  await usingForLoop(numbersList)
  await usingWhile(numbersList)
  await usingDoWhile(numbersList)
  await usingForOf(numbersList)
  await usingForEach(numbersList)
  await usingMap(numbersList)
  await usingFilter(numbersList)
  await usingReduce(numbersList)
  await usingSome(numbersList)
  await usingEvery(numbersList)
  await usingFind(numbersList)
})()

打印結果如下:

?

【在當前測試場景下】,根據測試結果所示,可發現:

  • 原生的 For 循環依然是最快的循環方式
  • forEach 的耗時是 for 循環的 3 倍
  • For...Of 這種簡化的語法,性能耗時較高,是 for 循環的 4 倍,不如 forEach
  • forEach 的循環執行速度,竟然 不如 map


該文章在 2025/2/21 16:10:27 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品视频国产永久视频 | 成人免费无码大片a毛片抽搐色欲 | 92午夜福利极品少妇久久一区 | 国产做a爱免费视频在线观看 | 精品国产美女福到在线不卡 | 国产成人免费精品在线观看 | 97人妻人人做人碰人人添高清 | 国产国产av蜜桃精品一二三区 | 国产精品白浆无码流出免费看 | 国产综合中文无码 | 国产精品国产三级国产aⅴ 国产精品国产三级国产aⅴ9色 | a级毛片无码无遮挡内射 | 国产97人人超碰cao | 不卡黄片在线播放 | 国产成人av激情在线播放 | 国产成人精品美女在线 | 国产尤物在线观看不卡 | 国产成人av在线婷婷不卡 | 97人妻免费线观看2025 | 97人妻精品一区二区三区 | 国产成人精品无码一区二区 | 国产欧美日韩亚洲中文一区 | 国产99精品| 国产一区二区三区久久播放器 | 国产午夜福利精品久久2025 | 国产午夜片无码区在线观看爱情 | 国产一区二区成人av在线播放 | 国产成人av在线播放不卡 | 国产午夜精品一区二区三区不 | 精品国产一区二区三区不卡在 | 国产高清av日| 黑人一区二区三区中文字幕 | 高清天天看国产手机在线 | 国产精品精品国内自产拍被发现 | 国产午夜理论片不卡 | 国产av一区二区三区传媒 | 国产亚洲精品4区在线观看 国产亚洲精品91 | 精品一级毛片免费无卡顿 | 黑人巨大欧美精品一区二区o | 国产传媒果冻天美传媒 | 国产欧美精品在线一区二区三 |