Was ist der beste Weg, um die Ausführung von Javascript zu profilieren? [geschlossen]

94

Gibt es einen guten Profiler für Javascript? Ich weiß, dass Firebug die Profilerstellung von Code unterstützt. Aber ich möchte Statistiken in einem längeren Maßstab ermitteln. Stellen Sie sich vor, Sie erstellen viel Javascript-Code und möchten feststellen, welche Engpässe im Code tatsächlich bestehen. Zuerst möchte ich Profilstatistiken jeder Javascript-Funktion und Ausführungszeit sehen. Als nächstes würden DOM-Funktionen eingeschlossen. Dies in Kombination mit Aktionen, die Dinge wie die Operation am Rendering-Baum verlangsamen, wäre perfekt. Ich denke, dies würde einen guten Eindruck hinterlassen, wenn die Leistung in meinem Code, in der DOM-Vorbereitung oder in Aktualisierungen des Rendering-Baums / Visuals beeinträchtigt wird.

Gibt es etwas in der Nähe von dem, was ich will? Oder was wäre das beste Werkzeug, um das Beste aus dem herauszuholen, was ich beschrieben habe? Wäre es ein selbst kompilierter Browser und eine Javascript-Engine, die durch Profilfunktionen erweitert wird?

Norbert Hartl
quelle
Wenn dies NODE_ENV=production node --prof app.jsnicht der Fall ist, finden Sie Alternativen unter stackify.com/node-js-profilers oder softwarerecs.stackexchange.com .
Cees Timmerman

Antworten:

63

Firebug

Firebug bietet einen sehr detaillierten Profilierungsbericht. Hier erfahren Sie, wie lange jeder Methodenaufruf in einer riesigen (detaillierten) Tabelle dauert.

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

Sie müssen anrufen console.profileEnd (), um Ihren Profilblock zu beenden. Die Konsolen-API finden Sie hier: http://getfirebug.com/wiki/index.php/Console_API

Amsel

Blackbird ( offizielle Seite ) hat auch einen einfacheren Profiler (kann hier heruntergeladen werden )

geowa4
quelle
Ich schrieb, dass ich Firefox kenne. Ich möchte mehr Statistiken vom Browser haben, die die Ausführung des Javascript beeinflussen.
Norbert Hartl
1
Das Gleiche gilt für Firebug, und Sie können direkt von der Konsole aus ein Profil erstellen, wenn Sie es nicht codieren möchten.
Chris B
1
Firebug ist das beste Tool, das Sie bekommen.
Sasha Chedygov
1
Das Gleiche funktioniert im Safari Web Inspector
olliej
9
Firebug ist gut und alles, aber ich kann nicht glauben, dass hier so viele Leute "Firebug, Firebug!" Gleich nachdem das OP ausdrücklich gesagt hatte, dass er seinen Code von mehreren Browsern aus profilieren möchte.
JMTyler
20

Die Entwicklertools von Chrome verfügen über einen integrierten Profiler.

Vince
quelle
2
+1, Speed ​​Tracer ist gut und es ist wichtig (wie im OP erwähnt), Ihren Code in mehr als nur Firefox zu profilieren, um zu sehen, wie sich der einzelne Browser darauf auswirkt.
JMTyler
4

Firebug + Firefox ist ein Muss. In der Entwickler-Symbolleiste von IE 8 ist auch ein Profiler integriert (IE 8 wird mit der Entwickler-Symbolleiste geliefert).

Chris Brandsma
quelle
4

Der Web Inspector von Safari 4 enthält auch einen Profiler (obwohl die Version in den Nightlies gegenüber rekursiven Funktionsaufrufen verbessert wurde). Der Web Inspector unterstützt auch die Profiler-APIs von Firebug.

olliej
quelle
4

Für JavaScript, XmlHttpRequest, DOM-Zugriff, Renderzeiten und Netzwerkverkehr für IE6, 7 und 8 können Sie die KOSTENLOSE dynaTrace AJAX Edition verwenden

Andreas Grabner
quelle
Bitte Anleitung, wie man das als Addon / Erweiterung im Browser installiert.
T.Todua