在阅读了最近关于优化的轰动一时的杂志文章后,我进行了一些测试,以了解从我的一个数组中间“删除”一个元素的最有效方法是什么。
在运行我自己的关于从数组中间拼接出一个值与删除它/将其设置为 null 的测试之后,我遇到了一个相当出乎意料的结果,即从数组中拼接出值使数组的遍历速度提高了一个数量级.
更多调查使我想到了这一点。
出于某种原因,对数组中的第一条记录进行 .shift() 处理使其遍历速度提高了 300 倍(在 v8 中可以看到最大的性能,但它似乎对我尝试过的所有浏览器都有效)。
我怀疑我会滥用这个,因为我不认为实际的遍历是一个瓶颈,但是有谁知道为什么会发生这种行为?
编辑: jsPerf 的不正确使用是这里的根本问题,请参阅下面的答案。