我尝试测量一个确切的时间并尝试过...但是使用了#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
有什么问题?