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

94

Existe-t-il un bon profileur pour javascript? Je sais que Firebug prend en charge le profilage du code. Mais je veux déterminer les statistiques sur une plus longue échelle. Imaginez que vous construisez beaucoup de code javascript et que vous voulez déterminer quels sont réellement les goulots d'étranglement dans le code. Au début, je veux voir les statistiques de profil de chaque fonction javascript et du temps d'exécution. Ensuite, il y aurait des 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 qui ressemble à 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?

Norbert Hartl
la source
Si ce NODE_ENV=production node --prof app.jsn'est pas le cas, consultez stackify.com/node-js-profilers ou softwarerecs.stackexchange.com pour des alternatives.
Cees Timmerman le

Réponses:

63

Pyromane

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 mettre fin à votre blocage de profil. Consultez 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 d' ici )

geowa4
la source
J'ai écrit que je connaissais Firefox. Je veux avoir plus de statistiques du navigateur qui influencent l'exécution du javascript.
Norbert Hartl
1
Idem sur Firebug, et vous pouvez profiler directement depuis la console si vous ne voulez pas le coder.
Chris B
1
Firebug est à peu près le meilleur outil que vous obtiendrez.
Sasha Chedygov
1
La même chose fonctionne dans Safari Web Inspector
olliej
9
Firebug est bon et tout, mais je ne peux pas croire qu'il y ait autant de gens ici scandant "Firebug, Firebug!" juste après que l'OP ait déclaré explicitement qu'il souhaitait profiler son code à partir de plusieurs navigateurs.
JMTyler
20

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

Vince
la source
2
+1, Speed ​​Tracer est bon, et il est important (comme l'OP l'a mentionné) de profiler votre code dans plus que Firefox pour voir comment le navigateur individuel l'affecte.
JMTyler
4

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

Chris Brandsma
la source
4

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.

olliej
la source
4

Pour JavaScript, XmlHttpRequest, l'accès DOM, les temps de rendu et le trafic réseau pour IE6, 7 et 8, vous pouvez utiliser l' édition GRATUITE dynaTrace AJAX

Andreas Grabner
la source
s'il vous plaît, instructions comment installer cela en tant qu'addon / extension dans le navigateur.
T.Todua