我最近遇到了一个非常有趣的问题,当有人发布了一个 jsperf 基准测试与我之前运行的一个几乎相同的基准测试发生了冲突。
在这两行代码中,Chrome的处理方式 截然不同:
new Array(99999); // jsperf ~50,000 ops/sec
new Array(100000); // jsperf ~1,700,000 ops/sec
基准测试:http://jsperf.com/newarrayassign/2
我想知道这里到底发生了什么!
(澄清一下,我正在寻找有关V8内部的一些低级细节,例如它在一个中使用不同的数据结构与另一个中使用什么样的结构)
65,536
或16,777,216
或其他2的幂处。 - user578895