当前位置: 首页 > news >正文

forEach和map遍历大数据,到底谁更快?实践出真知

你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。

针对大量数据进行遍历时,forEach和map相比,谁的的性能更高,执行的更快?你觉得呢?先百度一下

image.png

但是,今天我没选择相信搜索结果,我决定测试一下。我不仅仅测试了forEach和map,还带上了for,结果出乎意料!

我创建一个包含一亿个元素的数组,对三个方法分别执行相同的求和操作:

forEach

const largeArray = Array.from({ length: 100000000 }, (_, index) => index);

let total = 0;
console.time("forEach");
largeArray.forEach((item) => {
  total += item;
});
console.timeEnd("forEach");

map

const largeArray = Array.from({ length: 100000000 }, (_, index) => index);

let total = 0;
console.time("map");
largeArray.map((item) => {
  total += item;
});
console.timeEnd("map");

for

const largeArray = Array.from({ length: 100000000 }, (_, index) => index);

let total = 0;
console.time("for");
for (let i = 0; i < largeArray.length; i++) {
  total += largeArray[i];
}
console.timeEnd("for");

在浏览器中,将三个方法分别运行5次操作,单位ms,最后一行为均值,结果如下:

image.png
从结果看,如果用时长排序性能,性能从高到低应该依次是 for > forEach > map。1个亿的数据,好像有点太多了,那就再看看其他量级的比较。

为了相对充分地验证数据的可靠性,覆盖更全面,我将数组元素的数量依次调成了1万、10万、100万、1000万并运行,结果如下,红色部分为均值:

image.png
从上图中可以得出以下结论:

  1. 无论在哪个量级,forEach的性能高于map。
  2. 在10万级别数据以下,for的性能一般,通常低于另外两个。
  3. 数据量越大,达到百万级以上时,for的性能最高,其次是forEach,最后是map。

古人云,实践出真知,说的真不错。网上说的未必都是对的,有方法的还是可以测试下。我测试的数据量少,数组元素及操作也简单,所以结论未必完全正确。有实际超大数据处理经验的同学可以发表下意见。还有感兴趣的同学可以自己多试试,看看我们的结论是否一致,期待你的评论!

好了,分享结束,谢谢点赞,下期再见

相关文章:

  • 字符串压缩算法
  • 相机坐标系转换世界坐标系,zedimudepth
  • WSL-ubuntu下载安装配置cudnn
  • AutoGPT开源项目解读
  • spyglass-lint关闭(disable/stop/waiver)规则
  • 书生.浦江大模型实战训练营——(十三)茴香豆:企业级知识库问答工具
  • Android高级UI --- canvas
  • Android 12中读写SD卡,提示Operation not permitted问题处理
  • AI嵌入式人工智能开发 --- 【1】初始RKNPU
  • word、pdf、excel及zip加密(含示例效果及工具类)
  • 5 大场景上手通义灵码企业知识库 RAG
  • dma 和 mmap 的区别和联系
  • 【系统架构设计】测试评审方法
  • OSPF路由协议详解
  • 2025秋招大语言模型落地实践面试题
  • 更改了ip地址怎么改回来
  • Git —— 1、Windows下安装配置git
  • 在 Navicat BI 中创建自定义字段:自定义排序顺序
  • 制造业与互联网融合发展试点DID工具变量(2000-2023年)
  • RabbitMQ如何保证消息不丢失(面试版)
  • 停电催生商机,中国品牌 “照亮” 西班牙
  • 深观察丨从“不建议将导师挂名为第一作者”说开去
  • 特朗普加征关税冲击波:美国零售、汽车、航空、科技企业纷纷预警业绩波动
  • 贵州茅台一季度净利268亿元增长11.56%,系列酒营收增近两成
  • 市场监管总局:2024年查办商标、专利等领域违法案件4.4万件
  • 在岸、离岸人民币对美元汇率双双升破7.26关口