Array.prototype vs [] perf

快速的问题,我没有真正有机会进行调查。 在调用/应用类型的上下文中使用哪个更高性能: Array.prototype vs []

例如:

function test1() {
    return Array.prototype.splice.apply(arguments, [1, 2]);
}

test1([1,2,3,4,5,6,7,8,9]);

function test2() {
    return [].splice.apply(arguments, [1, 2]);
}

test1([1,2,3,4,5,6,7,8,9]);

我的想法:我会假设Array.prototype方式更Array.prototype因为原型函数可以被重用并且不需要创建字面值。 虽然不是很确定。

使用JSPerf(使用chrome)它看起来像Array.prototype的确性能稍微高一点:

http://jsperf.com/array-perf-prototype-vs-literal


这取决于运行它的浏览器。 在铬看来,原型比较快,firefox显示两者之间没有区别,尽管通常比chrome慢。 IE9显示了.prototype的大幅提速,但是目前为止浏览速度最慢。

然而,这种优化是如此之小,以至于人们可能会认为节省的时间会抵消读取代码所需的额外字节。 我虽然离题,但如果这些是您遇到的最大性能问题,那么您确实没有任何优化问题!

编辑:

我在这里添加了一个额外的测试,在这里我使用传入函数的数组来调用splice函数,该函数在IE,Chrome和Firefox中显示速度都快于两者。 我的结论是,如果你已经有了数组,那就使用它,否则使用原型。

链接地址: http://www.djcxy.com/p/11009.html

上一篇: Array.prototype vs [] perf

下一篇: CAML "NOT IN" query