Lade...
 

Prozess Profiling

Prozess Profiling

Beschreibung

Diese App steuert das Profiling von Ablaufprozessen, also von beliebig ausgeführtem InstantView®-Code. Durch das Profiling kann untersucht werden

  • wo die Zeit im Einzelnen bleibt
  • welcher Code für einen Vorgang ausgeführt wird
  • welche Messages getriggert werden und welche diese wiederum triggern

Funktionalität

Toolbar
Symbol Beschreibung
open.png Protokoll Datei laden
Ein Dialog öffnet sich, in dem eine Protokolldatei ausgewählt werden kann. Diese wird anschließend analysiert.
go.png Profiling starten
Bevor es richtig losgeht, ist eine Protokolldatei auszuwählen, in das Profiling-Protokoll abgelegt wird. Diese Datei wird im XML-Format vorliegen und sollte die Endung .xml tragen. Anschließend werden alle Aktionen, je nach Detailgrad, aufgezeichnet! Der Detailgrad kann nachträglich nicht verändert werden.
Das Profiling kann über den roten Stop-Button beendet werden.
stopsign.png Profiling beenden
Die Protokolldatei wird abgeschlossen und anschließend analysiert.

 

Felder
Feld Beschreibung
Profile Level Vor dem Profiling ist der Detailgrad einzustellen. Je detaillierter das Protokoll ist, desto größer wird es und braucht entsprechend mehr Zeit bei der Auswertung.
: Messages und Makros Alle getriggerten Messages und aufgerufenen Makros
: Statements Alle Statements (IV-Befehle)
: C++-Funktionen Alle C++-Funktionen (i.d.R. Model-Funktionen)
: Datenbankoperationen Alle Datenbankoperationen (Transaktionen, Lese- und Schreiboperationen)
Auswertung Die Aufzeichnungen aus der Protokolldatei werden analysiert und in einem Baum grafisch dargestellt. Für diese Analyse kann der Detailgrad eingeschränkt werden, um den Baum übersichtlich zu halten:
: Messages CURRENT, NON_CURRENT
  und INITIALIZE ignorieren
Diese Messages werden übersprungen und im Baum nicht angezeigt
: Statements ignorieren Sämtliche einzelne Befehle werden übersprungen, d.h. es bleiben nur Messages, Makros und Datenbankoperationen übrig
: 'Define' ignorieren Beginn und Ende eines Makros werden übersprungen; nützlich, wenn alle Statements angezeigt werden, denn dann ist die Anzeige der einzelnen Makros meist redundant (Ausnahme: wenn bei der Anzeige in einer ListView z.B. Makros aufgerufen werden)
: C++-Funktionen ignorieren Profiledaten über C++-Funktionen werden übersprungen
: Datenbankoperationen ignorieren (selbsterklärend)

 

Knöpfe
Knopf Beschreibung
Aktualisieren Anzeige des Baums und der Listen mit den Einstellung für die Auswertung neu darstellen
Neuer Profiler  Neues Profiler-Fenster öffnen. Sie können darin eine andere Profilerdatei laden um zwei Profile miteinander zu vegleichen.
Profiler-Datei laden siehe
Profiling starten siehe
Profiling stoppen siehe


Je nach Protokollumfang und den oben gemachten Einschränkungen kann die Analyse etwas dauern. Die Analyse kann selbstverständlich abgebrochen werden (je nach dem, was im System eingestellt ist, z.B. mit Strg-F12).

Um dem Wust an Daten Herr zu werden, kann außerdem eine Cluster-Analyse durchgeführt werden.

Baum

Profiling3.png

In diesem Beispiel wurde eine Stückliste aufgelöst. Die Analyse wurde auf Messages und Makros beschränkt. Einige Beispiele sollen bei der Interpretation des Baumes helfen:

  • Der gesamte Vorgang dauerte ca. 30 Sekunden (Zeile 1).
  • Die Ja/Nein-Abfrage dauerte 1,3 Sekunden - in dieser Zeit wartete das System auf die Antwort durch den Benutzer (dritte Message).
  • BATCH_ITEM_DISPOSITION dauerte insgesamt ca. 15 Sekunden. Diese verteilen sich hauptsächlich auf das Makro 'FillHiddenList' (ca. 6 Sekunden) und PROCESS_ITEM_DEMAND (ca. 8 Sekunden).

Wie berechnet sich die Dauer? Die Dauer entspricht dem Zeitraum, der zwischen dem Beginn des betreffenden Statements und dem Beginn des nächsten Statements verging. Wenn 'CleanUp' zwei Sekunden in Anspruch nimmt, heißt das, dass von Beginn von 'CleanUp' bis zum Beginn des nächsten Befehls zwei Sekunden vergingen. Es ist nicht bekannt, wie viel Zeit 'CleanUp' genau brauchte, sondern nur, wie viel Zeit bis zum nächsten Statement verstrich! 'CleanUp' braucht aber deutlich weniger Zeit - die restliche Zeit ging beim Warten auf Benutzereingaben drauf:

Zeitindex Statement Erläuterung
1 s CleanUp Befehl braucht nur wenige Millisekunden zur Ausführung
? - Hier wird auf eine Benutzereingabe gewartet
3 s Dup  

In der Regel braucht darauf nicht geachtet zu werden. Bei ungewöhnlich zeitraubenden Statements sollte aber nicht vergessen werden, dass direkt nach dem Statement möglicherweise auf eine Eingabe gewartet wurde. 

 

Verwandte Themen

 


Technische Dokumentation

Profiler App

Modulname

profilingEdit.app

Klassen

CX_LINK_TXN

Security

Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.

Empfangene Messages
Message Parameter Funktion Security
EDIT_PROFILING   Öffnet das Listenfenster  

 

Gesendete Messages
Message Parameter Funktion Empfangs-Modul
Keine      

Operativer Betrieb