一个精准计时的例子。
; 示例
计时(,2)
Sleep 1000
计时()
return
;--------------------分割线----------------------------------
计时(名称="", 输出方式=0) {
static 开始时间, _名称, _输出方式
if !开始时间
{
开始时间 := 求当前时间的毫秒版()
_名称 := 名称
_输出方式 := 输出方式
}
else
{
结束时间 := 求当前时间的毫秒版()
持续时间 := 结束时间 - 开始时间
秒钟时间 := 持续时间 / 1000
分钟时间 := 秒钟时间 / 60
毫秒时间 := 持续时间 " ms"
秒钟时间 := 秒钟时间 " s"
分钟时间 := 分钟时间 " min"
输出结果 := _名称 "`n" 毫秒时间 "`n" 秒钟时间 "`n" 分钟时间 "`n`n`n"
switch _输出方式 {
case 0:
FileAppend, % 输出结果, 时间对比.txt
case 1:
stdout := FileOpen("*", "w")
stdout.WriteLine(输出结果)
case 2:
MsgBox % 输出结果
}
开始时间=
_输出方式=
_名称=
}
}
求当前时间的毫秒版(){
return QueryPerformanceCounter() / QueryPerformanceFrequency() * 1000
}
QueryPerformanceFrequency() {
DllCall("QueryPerformanceFrequency", "Int64*", freq)
return freq
}
QueryPerformanceCounter() {
DllCall("QueryPerformanceCounter", "Int64*", CounterBefore)
return CounterBefore
}