Das klassische TimerInit() / TimerDiff() aus AutoIt, allerdings in Nanosekunden Genauigkeit:
Code
import times, os
type
Timer = object
t0: Time
proc timerInit(): Timer =
var t = Timer(t0: getTime())
return t
proc timerDiff(t: Timer, unit: string = "ns", T: type = int): T =
let
t1 = getTime()
td = int((t1 - t.t0).inNanoseconds)
case unit
of "ns": return T(td)
of "µs": return T(td / 1_000)
of "ms": return T(td / 1_000_000)
of "s": return T(td / 1_000_000_000)
else: return T(td)
let start = timerInit()
sleep(2500)
echo "diff ns: ", start.timerDiff()
echo "diff µs: ", start.timerDiff("µs")
echo "diff ms: ", start.timerDiff("ms")
echo "diff s: ", start.timerDiff("s", float)
#==>:
#==> diff ns: 2500143000
#==> diff µs: 2500143
#==> diff ms: 2500
#==> diff s: 2.500143
Alles anzeigen