QPC() - Stopwatch timing
Posted: 01 Sep 2014, 18:18
#Warn was complaining about uninitialized variables in QPX(). Instead of fixing it, I ended up with a simplified version.
QPC( Reset )
Reset = True : Resets the counter ( and returns the number of seconds since the computer was rebooted ).
Reset = False : Returns the number of seconds elapsed since last reset.
Basic usage example:
Test code: Stopwatch. Lap timing vs Split timing
QPC( Reset )
Reset = True : Resets the counter ( and returns the number of seconds since the computer was rebooted ).
Reset = False : Returns the number of seconds elapsed since last reset.
Code: Select all
QPC( R := 0 ) { ; By SKAN, http://goo.gl/nf7O4G, CD:01/Sep/2014 | MD:01/Sep/2014
Static P := 0, F := 0, Q := DllCall( "QueryPerformanceFrequency", "Int64P",F )
Return ! DllCall( "QueryPerformanceCounter","Int64P",Q ) + ( R ? (P:=Q)/F : (Q-P)/F )
}
Verbose code
Basic usage example:
Code: Select all
QPC( True ) ; Reset counter
Sleep 1000
Ti := QPC( False ) ; Retrieve time consumed since last reset
MsgBox, 0, Sleep 1000, %Ti% seconds
Code: Select all
QPC( True )
; do something
Sleep 234
Lap1 := QPC( False ), QPC( True )
; do something
Sleep 234
Lap2 := QPC( False ), QPC( True )
; do something
Sleep 234
Lap3 := QPC( False )
MsgBox % "Lap 1`t" Lap1 "`nLap 2`t" Lap2 "`nLap 3`t" Lap3 "`n`nTotal`t" Lap1 + Lap2 + Lap3
QPC( True )
; do something
Sleep 234
Split1 := QPC( False )
; do something
Sleep 234
Split2 := QPC( False )
; do something
Sleep 234
Split3 := QPC( False )
MsgBox % "Split 1`t" Split1 "`nSplit 2`t" Split2 "`nSplit 3`t" Split3 "`n`nFinal`t" Split3