使用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

10-04 22:55
查看更多