JavaScript 基准测试

194 阅读1分钟

一段普通的代码在不同系统、不同浏览器的执行效率完全就不同的,平常我们是无需考虑这个问题,但是在某些情况下,比如大量数据序列化,在 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

https://jsben.ch/BdlYW

jsbench.me 生成的结果:

https://jsbench.me/

其他不推荐的的手段还有:

  • Date.now
  • console.time & console.timeEnd
  • performance.now