阵列原型与[]性能
Array.prototype vs [] perf
我还没有机会深入研究的快速问题。在调用/应用类型的上下文中使用时,哪个更具性能:Array.prototype
和[]
?
例如:
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
方式更具性能,因为原型函数可以重用,而不需要创建文字。但也不太确定。
使用JSPerf(带chrome),看起来Array.prototype
的性能确实略高:
http://jsperf.com/array-perf-prototype-vs-literal
这取决于运行它的浏览器。在chrome中。原型更快,firefox显示两者之间没有区别,尽管通常比chrome慢。IE9显示.protype的速度有了很大的提高,但它是迄今为止速度最慢的浏览器。
然而,这种优化非常小,人们可能会认为节省的时间与读取代码所需的额外字节相抵消。不过我离题了,如果这些是你遇到的最大性能问题,那么你在优化方面真的没有任何问题!
编辑:
我在这里添加了一个额外的测试,我使用传递到函数中的数组来调用splice函数,它在IE、Chrome和Firefox中都显示得更快。我的结论是,如果你手头已经有了数组,就使用它,否则就使用原型。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 提高JQuery的性能
- 使用“;这个“;JavaScript原型方法中的关键字
- 引用类变量中的原型方法
- 如何从对象的原型方法访问JavaScript对象属性
- 使用正则表达式评估电子邮件地址时出现性能问题
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- React:按键的性能提升
- 在Three.js中导出网格会提高性能吗
- Node.js中的JavaScript原型对象效率
- 在javascript中搜索项目列表的性能
- 为什么在许多浏览器中drawImage()的性能略好于createPattern()
- 重载JS'firefox中的对象原型
- JavaScript数组优化以提高性能
- “util.inherits”和在NodeJS中扩展原型之间的区别
- 阵列原型与[]性能
- Javascript:使用性能参数对函数进行原型设计
- 使用 JS 原型构建大型 JS 应用程序的性能优势
- Javascript静态方法与原型/实例化方法在性能上的对比
- 在Javascript中向对象原型中添加许多函数时会出现性能问题