代码:
var a = '1' ;
for (var i = 0; i < 100000000; i++) {
parseInt(a); //方案一
// a * 1; //方案二
}
console.log(process.uptime());
结果,单位秒: 方案一: 1.559 , 1.492 , 1.523 方案二:3.841 , 3.899 , 3.877
19 回复
@captainblue2013 不是的,比较一下 parseInt(‘0x10’) 和 parseInt('0x10’, 10)。然后再比较一下 parseInt(xxx, 10) 和 parseInt(xxx) 的性能。
@captainblue2013 我自己一般用
console.time('number bench')
//benchmark here
console.timeEnd('number bench')
var a = '1';
var b = '0x1';
var runTest = function(timeTag, testFunction) {
console.time(timeTag);
for (var i = 0; i < 100000000; i++) {
testFunction(); //a);
}
console.timeEnd(timeTag);
}
//runTest("parseInt", parseInt);
runTest("parseInt(a)", function() {
parseInt(a);
});
runTest("parseInt(a, 10)", function() {
parseInt(a, 10);
});
runTest("parseInt(b)", function() {
parseInt(b);
});
runTest("parseInt(b, 10)", function() {
parseInt(b, 10);
});
runTest("* 1", function() {
a * 1;
});
runTest("- 0", function() {
a - 0;
});
Result:
parseInt(a): 1550ms
parseInt(a, 10): 1422ms
parseInt(b): 6517ms
parseInt(b, 10): 5716ms
* 1: 3914ms
- 0: 3903ms