当你写一个Javascript程序,您可以使用console.time()如果你需要知道一段代码的执行时间。然而,在Javascript程序复杂的逻辑分析,当试图在console.time找到性能瓶颈()是不适用的,对一些复杂逻辑的Javascript程序的运行进行了深入分析意味着console.time插入()的说法,这是不可接受的。调整复杂逻辑的Javascript程序的正确方法是使用console.profile()。



浏览器支持



Firefox、Chrome和眉目传情,安装Firebug插件支持console.profile Safari()语句,和IE和Opera的最新版本还提供了配置文件的功能,使用()console.profile几大浏览器非常相似,本文仅介绍console.profile使用()在一个萤火虫。需要注意的是,如果你使用Firebug控制台直接写Javascript的实验代码,然后console.profile()是无效的。



使用的console.profile()



使用的console.profile()很简单:插入console.profile()的地方,轮廓是必要的,并将console.profileend()在型材端。以下面的代码为例:

复制代码代码如下所示:

功能dotask(){

(1000)dosubtaska;

DoSubTaskA(100000);

DoSubTaskB(10000);

DoSubTaskC(100010000);

}

功能dosubtaska(计数){

对于(var i = 0;i <计数;i + +){ }

}



功能dosubtaskb(计数){

对于(var i = 0;i <计数;i + +){ }

}



功能dosubtaskc(countx,县){

对于(var i = 0;i < countx;i++){

对于(var j = 0;j <县;j + +){ }

}

}

Console.profile();

DoTask();

Console.profileEnd();





运行dotask之前()函数,执行console.profile(),()函数和执行dotask console.profileend()运行后,这样我们就可以收集详细的dotask()在运行过程中的功能。你可以看到在Firebug控制台:







从结果中可以看出,配置时间共涉及5 101.901ms,函数调用。结果的默认的标题是配置文件,可以通过传递参数到console.profile定制()函数。例如,使用console.profile(试验型)可以改变文件的标题测试剖面,为执行多个剖面过程同时是特别有用的。在具体的配置结果的每一列的含义如下:



1.function.function名称。

电话2.calls.the数。例如,在上面的例子中,该dosubtaska()函数执行了2次。

这个功能3.percent.the函数调用在整体时间消耗的时间百分比。

4。自己的时间。除去通过调用其他功能所消耗的时间,时间函数本身的消费。例如,在上面的例子中,dotask()长期以来一直执行,但因为它的时间是花在调用其他函数,它不会消耗太多的时间,只是0.097ms。

5.time.contrary自己的时间,不考虑其他因素的函数调用的函数,并计算总耗时。在上面的例子中,该dotask()的101.901ms.for时间和自己的时间执行的功能,你还可以得到一个结论:如果时间大于自己的时间,该功能包括调用其他函数内部。

6.avg.the总平均时间消耗计算功能:AVG =时间/ calls.in上面的例子中,该dosubtaska()函数执行了2次,其总时间1.054ms,所以总平均时间消耗0.527ms。

7.min.the最小耗费时间这个函数调用。例如,在上面的例子中,该dosubtaska()函数执行了2次,其最小耗费时间,即时间是耗时少花了0.016ms。

8.max.the最大耗时的函数调用。例如,在上面的例子中,该dosubtaska()函数执行了2次,其最大耗时间,就是花更多的时间1.038ms呼唤。

9.file.the js文件函数所处的位置。



轮廓的按钮使用Firebug



除了插入console.profile()Javascript代码语句,Firebug还提供了配置文件按钮在页面动态和动态轮廓的Javascript代码按钮的位置:







当需要配置文件时,按钮可以按下。如果下一页操作触发任何Javascript代码,它可以记录它。在配置文件的过程结束时,只需按下按钮一次。最终的结果是通过插入console.profile获得的结果一致()语句。