Lade...
 

CX_PROFILE_MANAGER::CalculateDurations

CX_PROFILE_MANAGER::CalculateDurations

Beschreibung:

Diese Methode erwartet als ersten Parameter ein übergeordnetes Objekt, welches eine Baumstruktur an Ereignissen definiert. Hiefür können beliebige Pseudoklassen verwendet werden. Jedes Objekt aus der Baumstruktur muss über folgende Eigenschaften verfügen, damit die Methode korrekt arbeiten kann.

  • Einen Slot, der alle Kindknoten enthält (Bsp: children, subTransactions)
  • Den Slot starttime (CX_NUMERIC), über den die Laufzeit der einzelnen Statements ermittelt werden soll

 

Die Methode errechnet die Dauer für jeden Knoten über die Differenz der Startzeit zur Startzeit des vorherigen Knotens (vorheriger Knoten in Bezug auf die Tiefensuche durch den Baum). Die Dauer wird in dem angegebenen Slot als CX_NUMERIC eingetragen. Damit diese Berechnung klappt, müssen die Startzeiten der Knoten monoton steigende Werte sein. Einheiten spielen für diese Methode keine Rolle. Aufgrund der Arbeitsweise dieser Methode hat der erste Knoten keine Dauer, da es keinen Vorgänger gibt. Die Dauer ist nich hierarchisch, sodass die Dauer eines Eltern-Knotens nicht der Summe der Dauer der Kindknoten entspricht.

 

Code-Beispiel:

/* Aufbau von root davor: { children : [ { children : [] starttime: "2016-08-26 16:09:08" }, { children : [] starttime: "2016-08-26 16:09:10" } ] } */ root "children" "duration" GetManager(PROFILE) Call(CalculateDurations) /* Aufbau von root danach: { children : [ { children : [] starttime: "2016-08-26 16:09:08" duration : "2 seconds" }, { children : [] starttime: "2016-08-26 16:09:10" } ] } */
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_PROFILE_MANAGER  
  Top-1 STRING Name des Datenfeldes, in welches die Dauer eingetragen werden soll ("duration")
  Top-2 STRING Name des Datenfeldes, über welches die Kindknoten erreichbar sind ("children")
  Top-3 CX_EXPANDABLE Objekt-Baum (Root-Knoten)
Stack(Out) Top -  
Funktionsaufruf: Call(CalculateDurations)