// 简单新建一个数组吧,新建一个一千万个成员为1的数组let arr = new Array(10000000).fill(1); // 第一种for循环书写方式 function fun1 () { for (let i = 0, len = arr.length; i < len; i++) {}}// 第二种for循环书写方式 function fun2 () { for (let i = arr.length; i --; ) {} fun1();}// 第三种for循环书写方式 function fun3 () { for (let i = 0, item; item = arr[i++]; ) {}}// 执行三个函数 function fun () { fun1(); fun2(); fun3();}// 立即开始一个性能分析器console.profile('测试for循环');fun();//console.profileEnd('测试for循环');复制代码运行如上程序,打开谷歌控制台一看:
嗯,没错,打印了两句话,性能分析器开启和结束。纳尼~说的性能分析器呢???小拳拳要捶你胸口了!!!
别急,性能分析器不在这里,在javascript Profiler面板中。
// 一些其他操作for (let i = 0; i < 10000; i ++) {}// 在录制会话期间插入的第一个事件 console.timeStamp('第一个循环完了') // 一些其他操作for (let i = 0; i < 10000; i ++) {} // 在录制会话起价插入的第二个事件console.timeStamp('第2个循环完了')复制代码录制完会话后,我们输入移入下图红框左上方的黄色竖线上可以看到弹出一个提示框,上面标注了Timestamp提示:‘第一个循环完了’,并且还有该事件插入时的时间节点。
// 录制第一段时间的会话信息console.timeline('测试循环100万相关的性能分析')for (let i = 0; i < 1000000; i ++) {}console.timelineEnd('测试循环100万相关的性能分析')// 录制第二段时间的会话信息 console.timeline('测试循环1000万相关的性能分析')for (let i = 0; i < 10000000; i ++) {}console.timelineEnd('测试循环1000万相关的性能分析')复制代码在我们的Performance面板中,点击开始录制当前页面,然后查看录制后的结果: