5 Stimmen

Bewertung der JavaScript-Leistung

Hintergrund:

Ich habe nach einer Referenz oder möglicherweise einem Tool gesucht, mit dem man die Effizienz (Ressourcenkosten) von JavaScript theoretisch bewerten kann. Diese Suche hat eine Menge ausgezeichneter Debugging-Software ergeben, aber ich kann nicht wirklich etwas finden, das mir hilft, den Code zu optimieren, indem ich weniger ressourcenintensive Methoden verwende.

Frage:

Gibt es eine Ressource (Online-Leitfaden, Liste, Datenbank, Buch, irgendetwas) oder vielleicht eine Software (webbasiert, Browser-Plugin, IDE-Erweiterung), die Ihnen hilft, Ihr JavaScript zu optimieren?

Beispiel:

innerText in IE / textContent in Firefox benötigt weit weniger Ressourcen als innerHTML in beiden Browsern.

Aber es gibt andere Vergleiche, von denen ich täglich höre, und ich kann nicht wirklich überprüfen, ob sie tatsächlich besser für optimierten Code oder effizienter sind, und selbst wenn ich es könnte, habe ich keine Möglichkeit, es zu testen!

Irgendwelche Ideen?

0 Stimmen

Vielen Dank für die vielen Antworten! Ich werde am Ende mit diesen alles zu testen, aber ich vermute, anstatt mit einem Leitfaden zu zeigen, was Sie "sollte" und "sollte nicht" verwenden, Sie nur Versuch und Irrtum im Tandem mit diesen Tests zu etablieren Best Practices für Ihre eigenen Anwendungsfälle. Wird gemacht.

0 Stimmen

Ich weiß nicht, warum diese Seite geschlossen wurde.

8voto

Salty Punkte 6580

In der gleichen Linie wie strife25, hat firebug eine sehr praktische Methode, um die Zeit zu messen, ohne irgendwelche Daten zu verarbeiten. Verwenden Sie einfach dies:

console.time("Your timer name");
//Execute some javascript
console.timeEnd("Your timer name");

Überprüfen Sie dann die Konsole. Alt-Text http://aquate.us/u/62232567893647972047.jpg

Bearbeiten - um 30 ungerade Sekunden falsch :(

6voto

linusthe3rd Punkte 3234

Die übliche Art und Weise, Javascript zu bewerten, besteht darin, die Zeit zu bewerten, die für die Ausführung eines Codesatzes benötigt wird:

var begin = new Date().getTime();
//do stuff
console.debug( new Date().getTime() - begin );

Allerdings gibt es einige Probleme damit im IE. Wenn ein Skript <15ms zur Ausführung benötigt, gibt der IE 0ms als Ergebnis zurück.

Verschiedene Javascript-Bibliotheken haben Test-Frameworks, um die Geschwindigkeit Ihres Codes zu bewerten. Das Test-Framework von Dojo heißt DOH.

John Resig hat auch ein Firebug-Plugin namens FireUnit entwickelt, mit dem man die Zeit, die eine Funktion für ihre Ausführung benötigt, leicht auswerten kann. Mit ein wenig Konfiguration kann man auch das Big O einer Funktion ausgeben, was eine großartige Information ist.

Sehen Sie sich das Video von Resig von der JSConf über JS-Leistungstests an:

Messung der Javascript-Leistung - John Resig

FireUnit Rundown

2 Stimmen

Jsyk, auf Laptops hängt die Timer-Auflösung des IE9 vom aktuellen Energieplan des Computers ab. Wenn er im Akkubetrieb läuft, beträgt die Auflösung ~16ms, aber wenn er aufgeladen wird, ist sie viel feiner. Außerdem müssen Sie sollte einen Test über eine sehr große Anzahl von Iterationen durchführen, so dass der Test selbst wahrscheinlich mehrere Sekunden dauern würde, und dann durch die Anzahl der Iterationen dividieren. Dadurch macht die Auflösung des Zeitgebers kaum einen Unterschied.

3voto

Mike Robinson Punkte 24535

Ich mochte schon immer den einfachen Ansatz von Firebug:

console.time("timer-name");

und

console.timeEnd("timer-name");

Gut für granulare Füllstandsmessungen.

1voto

TJ L Punkte 22920

Das 'Profil'-Werkzeug von Firebug ist großartig für die Messung der JavaScript-Leistung. Es zeigt Ihnen alle Engpässe in Ihrem Code in einer Funktion für Funktion Aufschlüsselung, zeigt, welche die höchste durchschnittliche Zeit, die meisten Anrufe, usw. hatte.

1voto

Nick Punkte 7407

Der Profiler im IE8 ist erstaunlich. Es gibt Ihnen eine Baumansicht zusammen mit der Inklusivzeit (in ms)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X