Was ist ein einfacher Weg, um die Dauer des Winkel-Verdauungszyklus zu messen? Es gibt verschiedene Methoden zur Analyse der Leistung des Verdauungszyklus, jedoch hat jede ihre eigenen Pitfals:
- Chrome Profiler: Zu viele Details unterbrechen den Digest-Zyklus nicht auf leicht zu findende Weise
- Batarang (AngularJS-Browser-Plugin): Zu viel Overhead, langsame Aktualisierungsrate, explodiert mit großen Apps.
... muss es einen besseren Weg geben ?! 1?
quelle
Die folgende Antwort zeigt Ihnen die Leerlaufleistung der $ Digest-Schleife, dh die Leistung des Digests, wenn sich keiner Ihrer Überwachungsausdrücke ändert. Dies ist hilfreich, wenn Ihre Anwendung auch dann träge erscheint, wenn sich die Ansicht nicht ändert. Für komplexere Situationen siehe die Antwort von aet.
Geben Sie Folgendes in die Konsole ein:
Das Ergebnis gibt Ihnen die Dauer des Digest-Zyklus in Millisekunden an. Je kleiner die Zahl, desto besser.
HINWEIS:
Sie können auch versuchen:
quelle
The listener is called only when the value from the current watchExpression and the previous call to watchExpression are not equal
. Ihr Code berücksichtigt keine Listener. Und eckig schafft viele Zuhörer. Sie würden niemals anrufen,$apply()
wenn sich nichts geändert hat, daher erzählen Ihre Ergebnisse nur die Hälfte der Geschichte. Abhängig von den Umständen kann es das weniger interessante sein;)angular.element(document)
wird nicht viel bringen, wenn Sie dieng-app
Direktive für die Initialisierung verwendet haben. In diesem Fall holen Sie sichng-app
stattdessen das Element. ZB durchangular.element('#ng-app')
...Hier ist ein neues Tool, das mir bei der Erstellung von Digest-Profilen hilft: Digest-HUD
quelle
Sie können auch die Winkelleistung verwenden
Disclamer: Ich bin der Autor der Erweiterung
quelle
Ein praktisches Tool, um den Verdauungszyklus im Auge zu behalten, ist das hervorragende ng-stats-Tool von @kentcdodds . Es erzeugt so ein kleines visuelles Element und kann sogar über ein Lesezeichen implementiert werden. Es kann sogar in iFrames wie jsfiddle verwendet werden.
Gefunden unter https://github.com/kentcdodds/ng-stats
quelle
Sie können UX Profiler verwenden
quelle
Für den strengen Modus, einen Lauf von Digest Cucle, führen Sie ihn in der F12-Konsole in Chrome aus
quelle
Die oben beschriebenen Tools haben Sie bereits auf die Idee gebracht, die Leistung der Digest-Schleife zu messen. Die meisten wichtigen Punkte zur Steigerung der Performance des Digest-Zyklus sind
Überwachen Sie Scroll-Ereignisse genau, um alle unsichtbaren Elemente auszublenden und
die Anzahl der Beobachter erheblich zu verringern.
Verwalten Sie überschaubare $ Digest-Zyklen für alle anderen Ereignisse.
quelle