web-dev-qa-db-fra.com

Quelle est la meilleure façon de profiler l'exécution javascript?

Existe-t-il un bon profileur pour javascript? Je sais que firebug prend en charge le code de profilage. Mais je veux déterminer les statistiques sur une plus longue échelle. Imaginez que vous construisez beaucoup de code javascript et que vous souhaitez déterminer quels sont les goulots d'étranglement dans le code. Au début, je veux voir les statistiques de profil de chaque fonction javascript et le temps d'exécution. Ensuite, il faudrait inclure les fonctions DOM. Ceci combiné avec des actions qui ralentissent les choses comme une opération sur l'arbre de rendu serait parfait. Je pense que cela donnerait une bonne impression si les performances sont tuées dans mon code, dans la préparation DOM ou dans les mises à jour de l'arborescence de rendu/visuel.

Y a-t-il quelque chose de proche de ce que je veux? Ou quel serait le meilleur outil pour tirer le meilleur parti de ce que j'ai décrit? Serait-ce un navigateur auto-compilé plus un moteur javascript amélioré par la fonctionnalité de profil?

90
Norbert Hartl

Firebug

Firebug fournit un rapport de profilage très détaillé. Il vous dira combien de temps chaque invocation de méthode prend dans un tableau géant (détaillé).

console.profile([title])
//also see
console.trace()

Vous devez appeler console.profileEnd () pour terminer votre bloc de profil. Voir l'API de la console ici: http://getfirebug.com/wiki/index.php/Console_API

Merle

Blackbird (site officiel) a également un profileur plus simple (peut être téléchargé à partir de ici )

62
geowa4

Les outils de développement de Chrome ont un profileur intégré.

20
Vince

Bien que Firebug ait été mentionné, une chose supplémentaire que vous voudriez voir avec Firebug est un plugin pour Firebug appelé FireUnit ; John Resig en parle dans cet article de blog:

Profilage de la fonction JavaScript

J'espère que ça t'as aidé.

12
Jason Bunting

L'inspecteur Web de Safari 4 comprend également un profileur (bien que la version des nightlies soit améliorée par rapport aux appels de fonction récursifs). L'Inspecteur Web prend également en charge les API de profileur de Firebug.

4
olliej

Firebug + Firefox est un must have. Et IE 8 la barre d'outils du développeur a également un profileur intégré (IE 8 est livré avec la barre d'outils du développeur).

4
Chris Brandsma

Pour JavaScript, XmlHttpRequest, DOM Access, Rendering Times et Network traffic for IE6, 7 & 8, vous pouvez utiliser FREE dynaTrace AJAX Edition

4
Andreas Grabner