当前位置:  开发笔记 > 编程语言 > 正文

了解Firebug探查器输出

如何解决《了解Firebug探查器输出》经验,为你挑选了3个好方法。

我一直在尝试使用Firebug的分析器来更好地理解我们看到的一些JavaScript性能问题的来源,但我对输出有点困惑.

当我分析一些代码时,探查器报告Profile(464.323 ms,26,412个呼叫).我怀疑464.323 ms是这些26,412次调用的执行时间的总和.

但是,当我深入查看详细结果时,我会看到平均执行时间大于464.323 ms的单个结果,例如,平均时间最长的结果会报告以下详细信息:

Calls: **1**
Percent: **0%**
Own Time: **0.006 ms**
Time: **783.506 ms**
Avg: **783.506 ms**
Min: **783.506 ms**
Max: **783.506 ms**

另一个结果报告:

Calls: **4**
Percent: **0.01%**
Own Time: **0.032 ms**
Time: **785.279 ms**
Avg: **196.32 ms**
Min: **0.012 ms**
Max: **783.741 ms**

在这两个结果之间,时间结果的总和远远大于464.323.

那么,这些不同的数字是什么意思呢?我应该相信哪些?



1> Dan Lew..:

如果您将鼠标设置为在Firebug中将鼠标悬停在其上,则每列都有一个描述.我假设您可以阅读每个列如何在您自己的工作.但是,你肯定遇到过一些需要解释的奇怪行为.

自己的时间是时间的函数花费执行自身内部的代码量.如果函数不调用其他函数,那么自己的时间应该与时间相同.但是,如果存在嵌套函数调用,则时间也会计算执行它们所花费的时间.因此,时间几乎总是大于自己的时间,并且在大多数情况下总计将超过分析器报告的总时间.

但是,单个函数的时间不应大于分析器为JavaScript调用记录的总时间.这个问题肯定是一个错误,我可以看到为什么当它给你这样一个矛盾的输出时你很难相信Firebug.我相信我已经找到了这个错误发生的原因:AJAX.

似乎AJAX调用导致计算嵌套函数调用的列报告错误信息.他们最终计算JavaScript执行的时间对服务器的请求.

您可以通过执行以下操作重现此分析器错误:

    转到使用AJAX的任何站点.(我使用过 http://juicystudio.com/experiments/ajax/index.php)

    启用控制台/脚本调试.

    打开探查器.

    进行AJAX通话.(多个可能会更多地阐明这个问题.)

    停止探查器,检查输出.

在这个例子中,关于时间自己的时间,每个函数的自己的时间加起来分析器的总时间,但时间列包含AJAX调用与服务器通信所花费的时间.这意味着如果您只是寻找JavaScript执行的速度,则时间列不正确.

它变得最糟糕:因为时间,平均时间,最小值最大值都计算嵌套函数调用,如果你使用的是AJAX,它们都是不正确的.最重要的是,任何最终使用AJAX的函数(在嵌套函数调用中)也会错误地报告它们的时间.这意味着很多功能可能会报告不正确的信息!因此,在Firebug修复此问题之前,不要相信任何这些列.(他们可能会以这种方式表达这种行为,尽管这样做会让人感到困惑.)

如果你没有使用AJAX,那么另一个问题就在于它; 如果你不喜欢,请告诉我们.



2> Gene..:

如果我理解正确,它会是这样的:

在第一行,您将看到自己的时间"仅为0.006ms".这意味着即使在该函数中花费的时间是783.506ms,其中大部分时间都花在了从该函数调用的函数中.

当我使用Firebug优化代码时,我尝试减少被称为最多的函数的"自己的时间".(显然还要检查任何不必要的函数调用以完全删除)



3> Luis Melgrat..:

来自Firebug教程 - 记录,分析和CommandLine(第二部分) :(这些例子很好)

Profiler的列和描述

功能栏:显示每个功能的名称.
调用列:它显示调用特定函数的数量.
百分比列:以百分比显示每个功能的耗时.
时间列:显示从函数的起始点到函数的结束点的执行持续时间.
平均列:显示特定功能的平均执行时间.如果您只调用一次函数,则不会看到差异.如果您打电话不止一次,您会看到差异.
该列的公式是
Avg = Own Ttime/Call;
最小列和最大列:它显示特定功能的最短执行时间.
文件列:函数所在文件的文件名.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有