CX_PROFILE_MANAGER
Klassenhierarchie
- CX_CLASS
- CX_SYSTEM_MANAGER
- CX_PROFILE_MANAGER
- CX_SYSTEM_MANAGER
Beschreibung:
Der Profile Manager steuert das Profilen, d.h. das Messen der Zeit von einzelnen Befehlen, Datenbankoperationen etc. Bis Version 4.1 war hierfür der InstantView® Befehl Profile zuständig.
Ein Profile Manager Objekt ist in der Lage, sich als String darzustellen und darin den derzeitigen Profiling Status wiederzugeben. Dieser ist entweder OFF oder listet alle Levels durch Kommata getrennt auf.
Code-Beispiel:
GetManager(PROFILE) // Profile-Manager-Objekt holen // Das Profile-Manager-Objekt befindet sich nun auf dem Stack String // Objekt als String darstellen => Status ermitteln (z.B. "OFF")
Ausführliches Code-Beispiel:
Var(filename, flags) "profile.xml" -> filename (-1) -> flags //-1 = 0xFFFFFFFF Profile everything filename GetManager(PROFILE) Put(FileName()) flags GetManager(PROFILE) Call(Start) //Start profiling // ... do stuff GetManager(PROFILE) Call(Stop) //Stop profiling and close file //Setup XML transformation rules CreateTransObject(CX_XML_PROCESSOR) -> xmlProcessor "statement" CX_IV_STATEMENT "@node,entryName,code,uniqueID,time,starttime" "subTransactions" "transaction" xmlProcessor Call(SetTransformRule) "define" CX_IV_MACRO "@node,entryName,name,uniqueID,time,starttime,module,module" "subTransactions" "transaction" xmlProcessor Call(SetTransformRule) "trace" CX_FUNCTION_TRACE "function,uniqueID,time,starttime" "subTransactions" "transaction" xmlProcessor Call(SetTransformRule) "traceinfo" CX_FUNCTION_TRACE "@contents,comment,time,starttime" "subTransactions" "transaction" xmlProcessor Call(SetTransformRule) "message" CX_IV_MESSAGE "@node,entryName,name,uniqueID,time,starttime,module,module" "subTransactions" "transaction" xmlProcessor Call(SetTransformRule) //Prepare root element Var(root) CreateTransObject(CX_PROFILING_SESSION) -> root 0.0 root Put(starttime) //set starttime for root element //Load tree from XML file filename root xmlProcessor Call(Parse) //Calculate durations root "subTransactions" "duration" GetManager(PROFILE) Call(CalculateDurations) //Display the structure in some tree widget ClearObox root FillObox
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
CalculateDurations | OBJECT, STRING, STRING | |||
DisableBufferedOutput | Puffern der Profile-Ausgaben aus-/einschalten. | |||
FileName | * | Dateinamen der Protokolldatei setzen und auslesen | ||
FindHotspots | OBJECT, INTEGER |
|
||
FindIdleHotspots | OBJECT, INTEGER |
|
||
GetCounter | STRING | INTEGER | Liest einen bestimmten ObjectStore Counter aus | |
ResetCounters | Setzt alle ObjectStore Counter wieder zurück | |||
SetCountersEnabled | INTEGER (TRUE | FALSE) | Aktiviert oder deaktiviert die ObjectStore Counter | ||
Start | INTEGER | Profiling starten | ||
Stop | Profiling beenden |
* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion
Modul | Kurzbeschreibung |
---|---|
profiling.mod | Dieses Modul steuert das Profiling beliebigen InstantView®-Codes |