Wenn Sie beim Schreiben eines JavaScript -Programms die Ausführungszeit eines bestimmten Codes kennen, können Sie Console.time () verwenden. Bei der Analyse von JavaScript -Programmen mit komplexerer Logik und dem Versuch, Leistungs Engpässe zu finden, ist console.time () nicht anwendbar - eine eingehende Analyse des Betriebs von JavaScript -Programmen mit komplexeren Logik bedeutet, eine große Anzahl von Konsolen zu fördern. Für die JavaScript -Programmabstimmung mit komplexer Logik besteht die richtige Art und Weise, console.profile () zu verwenden.
Browserunterstützung
Firefox, Google Chrome und Safari, die das Firebug -Plugin installiert haben, alle Support Console.profile () Anweisungen und die neuesten Versionen von IE und Opera bieten auch Profilfunktionen. Die Verwendung von Console.Profile () auf mehreren wichtigen Browsern ist ähnlich. In diesem Artikel wird nur die Verwendung von Console.profile () in Firebug verwendet. Eine Sache, die erwähnenswert ist, ist, dass Console.profile () ungültig ist, wenn Sie die Firebug -Konsole direkt zum direkten Schreiben von JavaScript -Experimentalcode verwenden.
Verwendung von console.profile ()
Die Verwendung von console.profile () ist sehr einfach: console.profile () einfügen, wo Sie das Profil starten und console.profilend () einfügen müssen, wo Sie das Profil beenden. Der folgende Code ist ein Beispiel:
Die Codekopie lautet wie folgt:
Funktion dotask () {
dosubtaska (1000);
dosubtaska (100000);
dosubtaskb (10000);
dosubtaskc (1000.10000);
}
Funktion dosubtaska (count) {
für (var i = 0; i <count; i ++) {}
}
Funktion dosubtaskb (count) {
für (var i = 0; i <count; i ++) {}
}
Funktion dosubtaskc (countx, County) {
für (var i = 0; i <countx; i ++) {
für (var j = 0; j <County; j ++) {}
}
}
console.profile ();
dotask ();
console.profileend ();
Führen Sie console.profile () aus, bevor Sie die Funktion dotask () ausführen. Nachdem die Funktion dotask () abgeschlossen ist, können die detaillierten Informationen während des laufenden Prozesss der Dotask () -Funktion gesammelt werden. Sie können in Firebugs Konsole sehen:
Aus den Ergebnissen können wir feststellen, dass die Profilzeit insgesamt 101,901 ms beträgt und 5 Funktionsaufrufe umfasst. Der Standardtitel des Ergebnisses lautet "Profil", das durch Übergabe von Parametern an die Funktion von Console.profile () angepasst werden kann. Beispielsweise kann die Verwendung von Console.profile ("Testprofil") den Titel dieses Profils in das Ergebnis "Testen" ändern, was besonders nützlich ist, wenn mehrere Profilprozesse gleichzeitig ausgeführt werden. Die Bedeutung jeder Spalte im spezifischen Profilergebnis lautet:
1. Funktion. Funktionsname.
2.Calls. Anzahl der Anrufe. Zum Beispiel wird im obigen Beispiel die Funktion dosubrtaska () zweimal ausgeführt.
3. Prozent. Der Prozentsatz der Zeit, die dieser Funktionsaufruf in der Gesamtzeit verbraucht hat.
4. DOWN -Zeit. Ohne die Zeit, die für andere Funktionen benötigt wird, die Zeit, die die Funktion selbst benötigt. Zum Beispiel hat sich Dotask () im obigen Beispiel zweifellos lange ausgesetzt, aber da es die ganze Zeit dauerte, andere Funktionen anzurufen, dauerte es nicht viel Zeit, nur 0,097 ms.
5.Time. Im Gegensatz zur eigenen Zeit wird die zeitaufwändige Berechnung der Funktion nicht berücksichtigt, wenn die Faktoren auf andere Funktionen aufgerufen werden. Im obigen Beispiel führt die Funktion dotask () 101.901 ms aus. Für Zeit und eigene Zeit können Sie auch eine Schlussfolgerung ziehen: Wenn die Zeit größer als die eigene Zeit ist, ist der Anruf bei anderen Funktionen an der Funktion beteiligt.
6.Avg. Die Berechnungsformel lautet: avg = Zeit/Anrufe. Im obigen Beispiel wurde die dosubtaska () -Funktion zweimal ausgeführt und ihre Gesamtzeit betrug 1,054 ms, so dass die durchschnittliche Gesamtzeit 0,527 ms betrug.
7.Min. Minimale zeitaufwändige, um diese Funktion aufzurufen. Beispielsweise wird im obigen Beispiel die dosubtaska () -Funktion zweimal ausgeführt, und die minimale zeitaufwändige Aufgabe besteht darin, dass der Anruf, der weniger Zeit für die Ausgabe von 0,016 ms benötigt.
8. Max. Die maximale Zeit, um diese Funktion aufzurufen. Zum Beispiel wurde im obigen Beispiel die dosubtaska () -Funktion zweimal ausgeführt, und ihr maximaler zeitaufwändiger Prozess ist, dass der Anruf, der mehr Zeit brauchte, um 1.038 ms zu verbringen.
9. Datei. Die JS -Datei, in der sich die Funktion befindet.
Verwendung von Profiltasten in Firebug
Zusätzlich zum Einfügen von Console.profile () in JavaScript Code bietet Firebug auch eine Profiltaste für dynamisch und im Echtzeitprofil JavaScript -Code in der Seite. Die Knopfposition lautet:
Wenn ein Profil erforderlich ist, können Sie die Taste drücken, und wenn die nächste Seite Operation jeglichen JavaScript -Code auslöst, zeichnet Firebug ihn auf. Drücken Sie am Ende des Profilprozesses einfach erneut die Taste. Das Endergebnis steht im Einklang mit dem Ergebnis, das durch Einfügen der Konsole.profile () -serklärung erhalten wird.