1、老方法 console.time
在之前,如果我们要测试性能,通常是用
console.time(str)
console.timeEnd(str)
复制代码
优点在于:
- 精度比较高(单位小于毫秒),连续两行
console.time('1')
和 ··console.timeEnd('1')··,他也能计算出时间差异; - 例如我随便试了一次,返回值是
1: 0.001953125ms
;
但这个有几个缺点:
- 首先只能在控制台显示结果,他本身是没有返回值的;
- 不能提交到服务器日志;
因此只能平时用于测试一下大致性能如何,真正遇见需要上生产环境使用的话,显然就不行了。
2、更老的方法 Date
Date 的使用方法有两种,分别是:new Date()
和 Date.now()
。
这两个类似,只不过一个返回的是 Date 类型,一个返回的是 number类型的毫秒数。
优点:
- 可以获取当前的时间,并且被变量保存;
但也有缺点:
- 精度太低,小于 1ms 的测试不出来结果;
3、新方法 performance.now
新方法具有以上两者的优点:
- 精确度高,低于 1ms(实际情况视浏览器的不同,精度大约在
0.1ms ~ 0.005ms
之间); - 记录的时间可以被变量所保存,因此可以用于生产环境使用;
示例代码:
console.log(a) // 6.32
console.log(b) // 6.325000000000001
console.log(b - a) // 0.005000000000000782
复制代码
缺点:
- 返回的值,跟打开网页的时间有关(至少chrome如此),并不像
Date.now()
那样直接返回现在距离 1970 年那个起始时间的毫秒数。