I've got this from the forum somewhere:
Code: Select all
Global QueryPerformanceFrequency.q : QueryPerformanceFrequency_(@QueryPerformanceFrequency)
; Returns the elapsed time between this call and the last call
Procedure.d GetExecutionTime(unit.d=#Time_Millisecond)
Protected counter.q, time.d
Static QueryPerformanceCounter.q
QueryPerformanceCounter_(@Counter)
time = unit * (counter-QueryPerformanceCounter) / QueryPerformanceFrequency
QueryPerformanceCounter = counter
ProcedureReturn time
EndProcedure
Code: Select all
GetExecutionTime()
; Do something here...
Debug "Time to do something: " + GetExecutionTime() + " ms"
Like this:
Code: Select all
timeOuter.d = GetExecutionTime()
For i = 1 To 1000
; Do something
timeInner.d = GetExecutionTime()
For j = 1 To 1000
; Do something
Next j
Debug "Time for inner loop: " + GetExecutionTime(timeInner) + " ms"
Next i
Debug "Time for outer loop: " + GetExecutionTime(timeOuter) + " ms"