Profiler

Ab Version 3.2.0 (Beta).

Der Reiter Profiler misst, wie lange die Auswertung von Formeln dauert. Er zeichnet jede Auswertung auf und zeigt sie als Zeitleiste und als Tabelle: Dauer, Anzahl der Aufrufe, Aufrufketten. Sie sehen, wo die Zeit bleibt – auch bei den Aufrufen, die Ninext selbst auslöst.

Der Reiter ist den Administratoren vorbehalten. Er zeigt nur sein Symbol, eine Stoppuhr, zwischen den Reitern Fehler und Code-Suche; sein Name erscheint, wenn Sie mit der Maus darüberfahren. Er lässt sich in den Ninext Einstellungen deaktivieren, Abschnitt „Skript-Manager“: Formel-Profiler.

Eine Messung starten und stoppen

Die Hauptschaltfläche, Messung starten, übernimmt den Namen des gewählten Starts (Bei der ersten Auswertung starten, Beim nächsten Klick starten); während der Messung wird daraus Messung stoppen. Die kleine Schaltfläche daneben, die die Symbole des gewählten Starts und Stopps zeigt, öffnet das Menü Startauslöser wählen, das aus zwei Teilen besteht. Der erste legt fest, wann die Messung beginnt:

StartWirkung
Sofort startenDie Messung beginnt mit dem Klick. Das ist die Standardeinstellung.
Bei der ersten AuswertungDie Messung beginnt mit der nächsten Formelauswertung, die als Zeitnullpunkt dient.
Beim nächsten KlickDie Messung beginnt beim nächsten Klick außerhalb des Reiters Profiler. Bis dahin wird die Schaltfläche zu Abbrechen.

Der zweite legt fest, wann sie endet:

StoppWirkung
Manuell stoppenÜber die Schaltfläche Messung stoppen. Das ist die Standardeinstellung.
Stopp nach 10, 30 oder 60 sDer Countdown beginnt mit dem Start der Messung.
Am Ende der AuswertungAngeboten zusammen mit „Bei der ersten Auswertung“: Die Messung endet, wenn diese Auswertung abgeschlossen ist, asynchrone Fortsetzung eingeschlossen.
Beim Loslassen der MaustasteAngeboten zusammen mit „Beim nächsten Klick“: Die Messung endet beim Loslassen der Maustaste. Was danach asynchron weiterläuft, wird nicht gemessen.

So messen Sie nur, was Sie interessiert: das Öffnen eines Datensatzes, den Klick auf eine Schaltfläche, die Berechnung einer Ansicht. Diese Einstellungen gelten bis zum Neuladen der Seite.

Solange die Messung auf ihren Auslöser wartet, zeigt die Statuszeile „Bereit — wartet auf den Auslöser…“ an. Während der Messung zeigt sie an, seit wie vielen Sekunden sie läuft, wie viele Auswertungen erfasst wurden und wie viele unterschiedliche Formeln.

Gut zu wissen

Eine neue Messung zu starten, leert die vorherigen Ergebnisse nicht: Die Auswertungen summieren sich von Messung zu Messung, in der Tabelle, in den Zählern und in der Zeitleiste, bis Sie auf Leeren klicken. Jede Messung beginnt auf der Zeitachse wieder bei null: Die Balken zweier aufeinanderfolgender Messungen überlagern sich daher am Anfang der Zeitleiste. Um eine Messung für sich zu lesen, klicken Sie vor dem Start auf Leeren.

Zeitleiste

Jede Auswertung ist ein Balken auf einer Zeitachse. Verschachtelte oder gleichzeitige Auswertungen stapeln sich auf mehreren Zeilen; jede Formel behält ihre Farbe, und ein durchscheinender Balken ist eine noch laufende Auswertung. Ausreichend breite Balken tragen den Namen ihres Feldes („Tabelle ▸ Feld“), bei Aufrufen des Plugins mit vorangestelltem „Ninext ▸“. Die Ansicht füllt sich live. Sie behält höchstens 20.000 Auswertungen: Darüber hinaus nennt ein Hinweis die Anzahl der verworfenen Auswertungen, die nur noch die Tabelle zählt.

Zum Zoomen:

  • das Mausrad oder die Pinch-Geste auf dem Touchpad in Chrome zoomt unter dem Mauszeiger (das Wischen mit zwei Fingern scrollt);
  • ein Doppelklick auf einen Balken wählt ihn aus und zoomt auf ihn;
  • drei Schaltflächen: Gesamte Sitzung einpassen, Zeitskala verkleinern und Zeitskala vergrößern.

Tabelle

Tabellenansicht des Profilers

Die Tabelle fasst die Auswertungen nach Formel zusammen:

SpalteInhalt
FormelDie gemessene Formel.
AufrufeDie Anzahl der Auswertungen.
Gesamt (ms)Die kumulierte Zeit.
Mittel (ms)Die durchschnittliche Zeit einer Auswertung.
Max (ms)Die längste Auswertung.

Sie ist nach Gesamtzeit sortiert, von der aufwendigsten zur am wenigsten aufwendigen, und wird jede Sekunde aktualisiert; die ersten 100 Zeilen werden angezeigt, und darüber hinaus weist ein Hinweis darauf hin („100 von N Zeilen angezeigt — teuerste zuerst.“). Ab 1.000 verschiedenen Formeln werden die folgenden in einer Zeile „… weitere Formeln“ zusammengefasst. Eine Formel des Schemas erscheint wie in Felder & Formeln – Breadcrumb-Navigation, „Fx“, Bearbeiten-Schaltfläche –, mit einem „+N“, wenn sich dieselbe Formel an mehreren Stellen befindet. Ein Badge „Ninext“ kennzeichnet die vom Plugin ausgelösten Aufrufe.

Die Details einer Auswertung

Details einer Auswertung im Profiler

Ein Klick auf einen Balken oder auf eine Zeile öffnet die Details:

  • den vollständigen Code der Formel;
  • bei einem Balken: Beginn, Dauer, Datensatz und die Aufrufkette, von der Wurzelauswertung bis zu dieser, wobei jedes Glied anklickbar ist; bei einer Zeile der Tabelle: Messwerte (Anzahl der Aufrufe, Gesamt-, Mittel- und Höchstzeit);
  • Herkunft, bei einem von Ninext ausgelösten Aufruf;
  • Variablen (Inspektion), bei einer Auswertung einer inspizierten Formel (siehe unten);
  • die Fundstellen der Formel im Schema, mit der Schaltfläche, die zum Code führt;
  • in der Fußzeile Auf diese Auswertung zoomen und Diese Formel inspizieren.

Eine Formel inspizieren

Wählen Sie eine Formel aus, in der Tabelle oder in der Zeitleiste, und klicken Sie dann auf Diese Formel inspizieren. Während der Messung erfasst der Profiler bei jeder Auswertung dieser Formel den Wert jeder mit var oder let deklarierten Variablen: eine Vorschau des Wertes und, beim Überfahren mit der Maus, seinen Typ.

Der Reiter Untersuchen listet diese Auswertungen auf, die neueste oben; ein Klick auf eine davon zeigt sie in der Zeitleiste. Es wird jeweils nur eine Formel inspiziert; Inspektion beenden beendet den Vorgang.

Zwei Einschränkungen: Neuzuweisungen und Schleifenvariablen werden nicht erfasst, und die Zeiten der inspizierten Formel sind nur noch Richtwerte, da die Erfassung selbst Zeit kostet.

Die Zahlen lesen

  • Die Zeiten sind inklusiv: Eine Formel zählt auch die Zeit der Formeln, die sie auswertet.
  • Bei einer asynchronen Auswertung läuft die Zeit bis zu ihrem Ende, einschließlich des Ladens der Daten.
  • Zwei Felder mit genau derselben Formel teilen sich eine Zeile der Tabelle.
  • Gemessen werden Formeln, Trigger, Spalten der Ansichten, der Code der Konsole und die Aufrufe von Ninext. Das eigene JavaScript von Ninext wird nicht gemessen.
  • Die Messung kostet nur wenige Mikrosekunden pro Auswertung und außerhalb einer Messung gar nichts. Die Ergebnisse bleiben im Speicher: Beim Neuladen der Seite gehen sie verloren.