
背景
项目初期,系统处理的数据量并不大,数组遍历、数据渲染都很流畅。那时候我用的是最常见的方式:
arr.forEach(item => doSomething(item));
可随着业务的发展,数据量开始呈指数级增长,从几千条迅速膨胀到几十万甚至上百万条。而问题,也在这时候开始显现:
❗ 页面突然变得卡顿,加载时间变长,交互响应缓慢。
一开始我以为是网络、渲染、状态管理等常规问题,甚至还怀疑是不是哪里内存泄漏了。但经过排查,发现性能瓶颈竟然出在 一次“无害”的数组遍历上!
为了验证,我尝试将 forEach 改为 while,结果一测性能:提升了整整 10 倍!

📈 图示:数据量 vs 性能耗时
可以明显看到,随着数据规模从 1 万扩展到 100 万,forEach 的执行时间呈线性增长,并且远高于 while。
这也是为什么前期察觉不到性能问题,而在数据激增后,页面突然“卡爆”的根本原因。
🧪 实验背景
我们创建了一个包含 一亿个元素的数组:
const arr = Array

最低0.47元/天 解锁文章
1157

被折叠的 条评论
为什么被折叠?



