console.time
方法是开始计时,console.timeEnd
是停止计时,输出脚本执行的时间。这两个方法中都可以传入一个参数,作为计时器的名称,主要测试JavaScript性能。对console.timeEnd的调用会立即输出执行总共消耗的时间,单位是毫秒。
console.time('time'); //测试开始
//执行一些代码
console.timeEnd('time'); //测试结束
开始的名字要和结束的名字一致
但有时候会碰到下面的代码,明明是延迟调用 ,但测试显示用时都在0.06毫秒左右。
function f1(){
console.time('time span')
}
function f2(){
console.time('time span')
}
setTimeout (f1,100)
setTimeout (f2,200)
function waitForms(n){
var now = Date.now()
while (Date.now() - now <n){}
}
waitForms(500)
//输出结果会在 2-0毫秒之间 比如 0.066毫秒
在调用setTimeout,代码会把这两个计时添加到栈里面且是并列关系,在往下执行 waitForms函数时有个500毫秒的延时导致代码发生堵塞,等500毫秒延时走完,两个setTimeout计时早就已经结束了,堵塞清掉同时执行代码setTimeout,这时测试计算用时相当于同时发生。