Code: Alles auswählen
#include "Common.ch"
#include "Xbp.ch"
PROCEDURE Main
local nTimeMacro, nTimeDirekt
local oObj, i, nMax := 1000000
local cFeld
cFeld := "Name"
? "Mit Macro Operator"
oObj := DataObject():new()
nTimeMacro := seconds()
for i := 1 to nMax
oObj:&(cFeld) := "Name "+ntrim(i)
next
nTimeMacro := seconds() - nTimeMacro
? "Dauer: ", nTimeMacro ,"Sekunden"
? "Direkter Aufruf"
oObj := DataObject():new()
nTimeDirekt := seconds()
for i := 1 to nMax
oObj:Name := "Name "+ntrim(i)
next
nTimeDirekt := seconds() - nTimeDirekt
? "Dauer: ", nTimeDirekt ,"Sekunden"
?
? "Unterschied: ", abs(nTimeMacro - nTimeDirekt),"Sekunden"
?
? "Anzahl der LOOPS: "+transform(nMax,"999,999,999")
inkey(20)
RETURN
function ntrim(n)
return alltrim(str(n))
Code: Alles auswählen
Mit Macro Operator
Dauer: 1,50 Sekunden
Direkter Aufruf
Dauer: 1,45 Sekunden
Unterschied: 0,05 Sekunden
Anzahl der LOOPS: 1.000.000
Ich denke nicht, dass das langsam ist