Algorithmen auf Zeit testen...
Verfasst: 21.11.2008 00:31
Hallo,
da es innerhalb von PB(4.02) ja lediglich die ElapsedMilliseconds() gibt, wird das Ergebnis meist 0 da sie unterhalb der milli's liegen.
Darum habe ich mir folgende möglk. ausgedacht aber glaube die ist nicht unbedingt sinnvoll... gibt es evtl. ne Api oder so ?
Das lediglich ein kleines Demobeispiel... denkweise dahinter ist klar pro Zeile ein Delay summiert sicht auf und erhalte so ne Zahl um zumind. die Komplexität abzuleiten. Aber das gibt mir nicht. den Realen Zeitaufwand..
(einfache aufgabe a*sqr(x) + b*sqr(y), nur Demo)
da es innerhalb von PB(4.02) ja lediglich die ElapsedMilliseconds() gibt, wird das Ergebnis meist 0 da sie unterhalb der milli's liegen.
Darum habe ich mir folgende möglk. ausgedacht aber glaube die ist nicht unbedingt sinnvoll... gibt es evtl. ne Api oder so ?
Das lediglich ein kleines Demobeispiel... denkweise dahinter ist klar pro Zeile ein Delay summiert sicht auf und erhalte so ne Zahl um zumind. die Komplexität abzuleiten. Aber das gibt mir nicht. den Realen Zeitaufwand..
(einfache aufgabe a*sqr(x) + b*sqr(y), nur Demo)
Code: Alles auswählen
a=7
x=27
b=4
y=48
zeit_on = ElapsedMilliseconds()
a=a*a : Delay(1)
b=b*b : Delay(1)
x=a*x : Delay(1)
y=b*y : Delay(1)
x = Sqr(x) : Delay(1)
y = Sqr(y) : Delay(1)
x = x+y : Delay(1)
zeit_off = ElapsedMilliseconds()
Code: Alles auswählen
zeit_on = ElapsedMilliseconds()
Gosub ggt:
x = x/x2 : Delay(1)
y = y/x2 : Delay(1)
x = Sqr(x) : Delay(1)
y = Sqr(y) : Delay(1)
a = a*x : Delay(1)
b = b*y : Delay(1)
a = a + b : Delay(1)
x = a * Sqr(x2) : Delay(1)
zeit_off = ElapsedMilliseconds()
ggt:
h.l
y2.l
x2 = x : Delay(1)
y2 = y : Delay(1)
While (y2 <> 0)
h = x2 % y2 : Delay(1)
x2 = y2 : Delay(1)
y2 = h : Delay(1)
Wend
;x2 als "return"
Return