相关疑难解决方法(0)

在V8中使用数组(性能问题)

我尝试了下一个代码(它在Google Chrome和nodejs中显示了类似的结果):

var t = new Array(200000); console.time('wtf'); for (var i = 0; i < 200000; ++i) {t.push(Math.random());} console.timeEnd('wtf');
wtf: 27839.499ms
undefined
Run Code Online (Sandbox Code Playgroud)

我也跑了下一个测试:

var t = []; console.time('wtf'); for (var i = 0; i < 400000; ++i) {t.push(Math.random());} console.timeEnd('wtf');
wtf: 449.948ms
undefined
var t = []; console.time('wtf'); for (var i = 0; i < 400000; ++i) {t.push(undefined);} console.timeEnd('wtf');
wtf: 406.710ms
undefined
Run Code Online (Sandbox Code Playgroud)

但在Firefox中,第一个变体看起来都很好:

>>> var t = new Array(200000); console.time('wtf'); ...{t.push(Math.random());} console.timeEnd('wtf');
wtf: 602ms
Run Code Online (Sandbox Code Playgroud)

V8会发生什么?

UPD *神奇地降低了性能*

var t …
Run Code Online (Sandbox Code Playgroud)

javascript arrays firefox google-chrome v8

25
推荐指数
2
解决办法
6235
查看次数

标签 统计

arrays ×1

firefox ×1

google-chrome ×1

javascript ×1

v8 ×1