我已经检查过我的系统支持microsec precision how to make system support nanosec precision 使用boost计时器我能够以微精度Print current time in microsec
打印当前时间现在,当我检查nanosleep / usleep是否正常工作时,我运行此程序。
这是我的program1
Print current time in microsec
usleep(1); // sleep for 1 microsec
Print current time in microsec
这是我的输出
01:43:38.799150
01:43:38.799393
当我运行这个程序2时
struct timespec delay;
delay.tv_sec = 0;
delay.tv_nsec = 1000;
Print current time in microsec
nanosleep(&delay, NULL);
Print current time in microsec
我得到了这个输出
01:48:25.919269
01:48:25.919838
我预计当前时间只有1微秒的差异,而实际上我的差异超过100微秒。 什么原因?
我怀疑我的系统是否正确执行usleep / nanosleep虽然usleep(1)也间接称为nanosleep(1000)
我正在使用g ++,linux。任何帮助或见解都会很棒并且事先感谢。