hier mal ein Beispiel von mir, wie man von Befehlen die anzahl der benötigten Taktzyklen ermitteln kann.
Einfach oben die CPU-Geschwindigkeit in Herz angeben (bei mir 2.2e9) und Off-Set Zyklen, ein korrekturwert, sodass bei nichts auch 0 rauskommt.
Code: Alles auswählen
Prototype ClockCyclesFunction()
Global ClockCycles_Error.f = 7 ; Zyklen
Global ClockCycles_CPUFrequency.f = 2.2e9 ; Hz
Procedure.f ClockCycles(Function.ClockCyclesFunction)
Protected Loops = 10, Start, Time
Repeat
Loops * 2
Start = timeGetTime_()
For Index = 1 To Loops
Function()
Next
Time = timeGetTime_()
Until Time-Start > 250
ProcedureReturn ClockCycles_CPUFrequency*(Time-Start)/Loops*1e-3 - ClockCycles_Error
EndProcedure
Procedure Test()
EndProcedure
MessageRequester("Taktzyklenmessung", "Benötigte Taktzyklen: "+#LF$+StrF(ClockCycles(@Test()),1))
Beispiel:
Code: Alles auswählen
A = 1 ; 1 Taktzyklus
Code: Alles auswählen
A = 1 : B = 2 : C = A+B ; 7 Takzyklen
Code: Alles auswählen
Sin(2) ; ~ 100 Takzyklen