On Tuesday, 8 December 2015 at 15:35:18 UTC, Taylor Hillegeist
wrote:
So, I mostly do programming that is of run to completion
verity. But I have a dream of calling functions periodically.
So my question is:
What is the best (most time accurate) way to call a function
every n time units?
What is the best way to measure the jitter of these calls?
I'm also interested in waiting vs calling periodically eg.
call
wait(1 ms)
call
is not the same as 1 ms from call to call, due to the time
duration of the function call.
Thanks!
import core.thread;
import std.datetime;
import std.algorithm.comparison;
import std.math;
import std.stdio;
import core.time;
long loopTime = 0;
long CmdTime = 500_000_000; //Time in ns
void main()
{
for(int x = 0; x<20; x++){
auto time = TickDuration.currSystemTick.nsecs;
myPrinter(loopTime);
while(TickDuration.currSystemTick.nsecs - time <
CmdTime){}
loopTime = TickDuration.currSystemTick.nsecs -
time;
}
}
void myPrinter(long time){
writeln(time," nsecs with jitter of :",
abs(CmdTime-time), " nsecs");
}
What about this?