我正在遍歷一個大數組(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次會導致顯着的性能損失?
你可以在http://jsperf.com上做你自己的測試 – andlrc 2012-07-06 17:55:33
它可能會,是的。但是隻是測試它......對其進行測試並不難。 – TheZ 2012-07-06 17:55:46
如果您對性能感興趣,如果可能的話,您最好將操作員測試從環路中完全拉出。 (你的示例代碼不會在循環中顯示「操作符」改變。) – Pointy 2012-07-06 17:56:19