The os/Time module
The Time
module allows for both time measurement and sleeping.
Sleep
There are three granularities for sleep: second, milli, and microseconds. Note that each system has different guarantees as to the actual clock granularity, but the SDK will use the most precise method available.
// sleep for one second
Time sleepSec(1)
// then for 12 milliseconds
Time sleepMilli(12)
// then for 300 microseconds
Time sleepMicro(300)
Date and time
dateTime
will return the current time date and time formatted as a
human-readable string. The exact format might depend on the locale and
operating system.
"Today is: %s" printfln(Time dateTime())
hour
, min
, and sec
return the current hour, minute, and second.
Executed at 12h34 and 56 seconds, the following will print 123456:
"%d%d%d" printfln(Time hour(), Time min(), Time sec())
microtime
returns the microseconds that have elapsed in the current
minute, whereas microsec
returns the microseconds that have elapsed
int he current second.
runTime
returns the number of milliseconds elapsed since program start.
"Uptime: %d seconds." printfln(Time runTime() / 1_000)
Measure
The measure
function accepts a block and returns the number of milliseconds
spent elapsing it. It might be used as a poor humanoid’s profiler:
duration := Time measure(||
// some time-consuming task
)
"Huge task done in %d ms" printfln(duration)