Chaque colonne a une description de ce que cela signifie que si vous définissez votre souris pour survoler dans Firebug. Je vais supposer que vous pouvez lire sur la façon dont chaque colonne fonctionne sur votre propre alors. Cependant, vous avez certainement venir à travers de drôles de comportement qui doit être expliqué.
Le temps propre est la quantité de temps passé à l'exécution de la fonction de code à l'intérieur de lui-même. Si les appels de fonction, pas d'autres fonctions, puis le temps devrait être la même que du temps. Cependant, si il y a des appels de fonctions imbriquées, puis le temps compte aussi le temps passé à l'exécution d'eux. Par conséquent, le temps sera presque toujours plus grand que leur propre temps, et dans la plupart des cas plus que le total du temps indiqué par le générateur de profils.
Toutefois, aucune seule fonction du temps doit être plus grand que la durée totale de la profiler connecté pour JavaScript appels. Ce problème est certainement un bug, et je peux voir pourquoi vous avez de la difficulté à faire confiance à Firebug quand il vous donne un tel paradoxal de sortie. Je crois que j'ai traqué la raison de ce bug se produit: AJAX.
Il semble que les appels AJAX sont à l'origine de colonnes que de compter les appels de fonctions imbriquées à signaler une information erronée. Ils finissent par comptage à la fois le temps d'exécution de JavaScript et de la demande au serveur.
Vous pouvez reproduire ce profiler bug en procédant comme suit:
- Aller à un site qui utilise AJAX. (J'ai utilisé
http://juicystudio.com/experiments/ajax/index.php)
- Activer la Console/le débogage de Script.
- Allumez le générateur de profils.
- Faire un appel AJAX. (Plusieurs peuvent éclairer la question de plus.)
- Arrêter le générateur de profils, examinez la sortie.
Dans cet exemple, en ce qui concerne le temps contre temps, le temps propre de chaque fonction s'ajoute à la profiler total du temps, mais le temps de colonne intègre la quantité de temps que l'appel AJAX a eu de communication avec le serveur. Cela signifie que le temps de colonne est incorrect si vous êtes à la recherche de la vitesse d'exécution de JavaScript.
Il devient pire: depuis le temps, durée moyenne, min et max tous compter les appels de fonctions imbriquées, ils sont tous incorrecte si vous êtes en utilisant AJAX. En plus de cela, une fonction qui finalement utilise AJAX (dans une fonction imbriquée appel) également compte de leur temps de manière incorrecte. Cela signifie que tout un tas de fonctions de reporting des informations incorrectes! Afin de ne pas faire confiance à aucun de ces colonnes pour l'instant jusqu'à ce que Firebug résout le problème. (Il est possible qu'ils l'ont prévu le comportement de cette façon, même si c'est déroutant au mieux de laisser cela de cette façon.)
Si vous n'êtes pas à l'aide d'AJAX, puis une autre question est de savoir à jouer, faites-nous savoir si vous êtes ou non.