一段普通的代码在不同系统、不同浏览器的执行效率完全就不同的,平常我们是无需考虑这个问题,但是在某些情况下,比如大量数据序列化,在 JavaScript 中你可以有不同的实现,这时就得评价代码的性能。
比如字符串转化为整数的三个方法:+、Number、ParseInt,为了更好的观察它们的性能,我们把测试量级定在 1000。
生成数据:
const arr = Array.from({ length: 1000}, (_, i) => String(i));
+
:
const numArr = [];
for(let i = 0; i < arr.length; i++) {
numArr.push(+arr[i]);
}
Number
:
const numArr = [];
for(let i = 0; i < arr.length; i++) {
numArr.push(Number(arr[i]));
}
parseInt
:
const numArr = [];
for(let i = 0; i < arr.length; i++) {
numArr.push(parseInt(arr[i]));
}
jsben.ch
生成的结果, 预览 jsben.ch/BdlYW :
jsbench.me
生成的结果:
其他不推荐的的手段还有:
- Date.now
- console.time & console.timeEnd
- performance.now