前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js 循环性能测试

js 循环性能测试

作者头像
epoos
发布2024-04-11 09:41:09
870
发布2024-04-11 09:41:09
举报
文章被收录于专栏:epoos.comepoos.com

简单测试一下js常用三个循环的性能情况

测试代码如下,分别在不同内存情况、不同循环次数下的执行耗时情况。 执行环境为 Mac M3芯片的 nodejs 环境。

代码语言:javascript
复制
const max = 100000000
const timeTestForIn = () => {
  let str = ''
  let arr = new Array(max).fill(1)
  let start = Date.now();
  for (let i = 0; i<arr.length;i++) {
    str += '1';
  }
  let end = Date.now();
  console.log('forin:', end - start, str.length)
}
const timeTestMap = () => {
  let str = ''
  let arr = new Array(max).fill(1)
  let start = Date.now();
  arr.map(i => str += 'i')
  let end = Date.now();
  console.log('map: ', end - start, str.length)
}
const timeTestForEach = () => {
  let str = ''
  let arr = new Array(max).fill(1)
  let start = Date.now();
  arr.forEach(i => str += 'i')
  let end = Date.now();
  console.log('foreach: ', end - start, str.length)
}
/*
执行的时候可能会爆内存溢出,需手动指定内存使用量
node --max-old-space-size=10240
*/
timeTestForIn(); // 7852ms
timeTestForEach(); // 7598ms
timeTestMap(); // 7212ms

1、一亿次循环结果比较

测试结果1
测试结果1

当内存为10G的时候,循环耗时 map < foreach < forin 当内存为5G的时候,循环耗时 foreach < forin < map 其中最后使用3072M内存的时候直接内存溢出了,没有结果

2、一千万次循环结果比较

测试结果2
测试结果2

当内存为10G的时候,循环耗时 forin < foreach < map 当内存为5G的时候,循环耗时 forin < foreach < map 当内存为3G的时候,循环耗时 forin < foreach < map

可以看出此内存环境下,三者耗时情况一样

2、一百万次循环结果比较

测试结果3
测试结果3

当内存为10G的时候,循环耗时 foreach < forin < map 当内存为5G的时候,循环耗时 foreach < forin < map 当内存为3G的时候,循环耗时 foreach < forin < map

可以看出此内存环境下,三者耗时情况一样

2、十万次循环结果比较

测试结果4
测试结果4

当内存为10G的时候,循环耗时 foreach < map < forin 当内存为5G的时候,循环耗时 foreach = map < forin 当内存为3G的时候,循环耗时 foreach = map < forin

此环境下耗时成了个位数了,foreach和map差不多,forin耗时稍微大一点。

结论

forin、foreach、map 三个循环耗时在数据量不大的时候大体来说相差不是很多。 数据量非常大的时候耗时又跟内存情况有关系,这个还真不好下结论。

不过对于日常开发来说也用不到那么大量的循环,个人感觉怎么方便怎么来吧,易读性和可维护性比这点性能更加重要。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单测试一下js常用三个循环的性能情况
  • 1、一亿次循环结果比较
  • 2、一千万次循环结果比较
  • 2、一百万次循环结果比较
  • 2、十万次循环结果比较
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档