Lade...
 

CX_PROFILE_MANAGER::Start

CX_PROFILE_MANAGER::Start

Beschreibung:

Diese Funktion startet das Profiling. Der Dateiname muss über FileName bereits gesetzt sein.

Das Protokoll liegt im XML-Format vor und ist in <profile>...</profile> geklammert. Auch wenn in den nachfolgenden Beschreibung z.B. <statement ...>...</statement> steht, kann solch ein XML-Tag zu <statement ... /> zusammengezogen sein, wenn es selbst keine weiteren XML-Tags enthält! Also Vorsicht beim Parsen, solange ClassiX® noch kein XML-Parser enthält!

Die Bits im Parameter steuern, was protokolliert wird:

Bit Was? Wie? Parameter
0 Message-Bearbeitung
<message time="..." name="..." [module="..."]> ... </message>
time: Zeitpunkt seit Messbeginn in Millisekunden
name: Name der Message
module (optional): Name des Moduls, in dem der Code der Message ausgeführt wird
1 Makro-Aufruf
<define time="..." name="..." [module="..."]> ... </define>
time: Zeitpunkt seit Messbeginn in Millisekunden
name: Name des Makros
module (optional): Name des Moduls, in dem das Makro definiert ist
2 IV-Befehl
<statement time="..." code="..."> ... </statement >
time: Zeitpunkt seit Messbeginn in Millisekunden
code: Statement
3 C++-Funktion
<trace time="..." function="..." [info="..."]> ... </trace>
time: Zeitpunkt seit Messbeginn in Millisekunden
function: C++-Funktion
info: Weitere Informationen, z.B. Parameter der Funktion
Weitere Informationen zur C++-Funktion
<info time="...">...</info>
time: Zeitpunkt seit Messbeginn in Millisekunden
4 Transaktionsbeginn
<transaction time="..." type="start" [name="..."] />
time: Zeitpunkt seit Messbeginn in Millisekunden
name (optional): Name der Transaktion
Transaktionsende
<transaction time="..." type="..." [name="..."] />
time: Zeitpunkt seit Messbeginn in Millisekunden
type: 'commit' oder 'abort'
name (optional): Name der Transaktion
Statistiken über letzte Transaktion
<statistics> <fetchedPages>...</fetchedPages> <commitedPages>...</commitedPages> <translatedPointers>...</translatedPointers> </statistics>
fetchedPages: Anzahl nachgeladener Pages
commitedPages: Anzahl zum Server gesendeter Pages
translatedPointers: Anzahl Zeiger, die in den Speicher gemapped wurden
Datenbankoperationen
<database time="..." action="..." segment="..." segmentNo="..." clusterNo="..." pageNo="..." [nPages="..."] />
time: Zeitpunkt seit Messbeginn in Millisekunden
action: Operation, z.B. 'fetch'
segment: Name des Segments, in der die Operation stattfand
segmentNo: Nummer des Segments
clusterNo: Nummer des Clusters
pageNo: Nummer der Page
nPages: Anzahl der Pages
Code-Beispiel:
Var(level)
CreateTransObject(CX_BIT_PATTERN) -> level
GetValue(, LevelMsgDef) if { 0 1 level Call(SetBit)  1 1 level Call(SetBit) }
GetValue(, LevelStmnt)  if { 2 1 level Call(SetBit) }
GetValue(, LevelTrace)  if { 3 1 level Call(SetBit) }
GetValue(, LevelDB)     if { 4 1 level Call(SetBit) }
level GetManager(PROFILE) Call(Start)

// Widgets, um Level zu steuern
  Group(ProfileLevel, SELECT_MULTIPLE, 10, 1, 350, 41, T("Profile Level", "Profiling level"))
  {
    Checkbox(LevelMsgDef, 10, 12, 330, T("&Messages und Makros", "&Messages and macros"))
    Checkbox(LevelStmnt,  10, 20, 330, T("&Statements", "&Statements"))
    Checkbox(LevelTrace,  10, 28, 330, T("C++-&Funktionen", "C++ &functions"))
    Checkbox(LevelDB,     10, 36, 330, T("&Datenbankoperationen", "&Database operations"))
  }
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_PROFILE_MANAGER Profile-Manager-Objekt
  Top-1 INTEGER Bitmaske (s.o.)
Funktionsaufruf: Call(Start)