使用new Array(size)
ctor时,如果size
不是常数,则JS似乎在某些浏览器中(至少在Chrome中)创建了稀疏数组,导致访问速度比使用默认ctor时慢得多,如here所示。
这与我想要的恰恰相反:我预先分配了给定大小的数组,以避免dynamic re-allocation从而提高性能。有什么办法可以实现这个目标?
请注意,此问题与new Array(size)
ctor的歧义无关。我在here上发布了一个建议。
最佳答案
100000是超出预分配阈值的1,99999仍然是预分配的,并且您可以看到它快得多
http://jsperf.com/big-array-initialize/5