【发布时间】:2012-07-06 17:52:49
【问题描述】:
我正在遍历一个大数组(10^5 项)并对每个数组执行操作。
for (var row in rows) {
switch (operator) {
case "op1":
row += 1;
break;
case "op2":
...
case "opN":
break;
}
}
为了可测试性和可读性,我想将内部 switch 语句提取到它自己的函数中,所以循环看起来像
for (var row in rows) {
this.updateRow(row, operator);
}
与调用函数 10^5 次相关的开销是否会导致明显的性能损失?
【问题讨论】:
-
你可以在jsperf.com做你自己的测试
-
很可能,是的。但只要测试一下……做测试并不难。
-
如果您对性能感兴趣,最好尽可能将操作员测试完全拉出循环。 (您的示例代码未显示循环中的“运算符”更改。)
-
我没想到会有很大的不同。然而,由于你的函数是一个方法,一个简单的优化是在一个局部变量中创建一个对它的引用,因为这些对于 JS 来说比对象方法解析得更快。
标签: javascript optimization readability