通过sleep()或usleep()进行时间测量

时间:2017-03-06 00:07:58

标签: linux macos c++11 timer sleep

我尝试测量一个确切的时间并尝试过...但是使用了#34; sleep(1)/ usleep(1000)"我得不到我的期望。

这是我的测试代码和结果:

unsigned long long start;
unsigned long long end;

// Example A:

start = mach_absolute_time();
sleep(1);
end = mach_absolute_time();
printf( "\nA:----------\n\t%f seconds\n", mach_elapsed_time(start, end) / 1000000000.0 );

// Example B:

start = mach_absolute_time();
usleep(1000);
end = mach_absolute_time();
printf( "\nB:---1000---\n\t%f seconds\n", mach_elapsed_time(start, end) / 1000000.0);

// Example C:

start = mach_absolute_time();
usleep(900);
end = mach_absolute_time();
printf( "\nC:----900---\n\t%f seconds\n", mach_elapsed_time(start, end) / 1000000.0);

// Example D:

start = mach_absolute_time();
usleep(815);
end = mach_absolute_time();
printf( "\nD:----815---\n\t%f seconds\n", mach_elapsed_time(start, end) / 1000000.0);

我得到了这个输出:

A:----------
    1.000097 seconds    // Almost what I expect
B:---1000---
    1.252341 seconds
C:----900---
    1.127429 seconds
D:----815---
    1.021522 seconds

有什么问题?

0 个答案:

没有答案