- 论坛徽章:
- 11
|
回复 7# huangyacong
详细说下你的测试方法。
下面是我的实验结果(ubuntu 11.10,cpu i7 3.4GHz, mem 4G):
循环10000次,每次1微妙
执行了五次,可以看到时间介于1~10秒,精度略高于1毫秒,但完全达不到1微妙
随着硬件发展和软件更新,这个精度会逼近,但现在还差很远- #include <stdio.h>
- #include <unistd.h>
- int main(int argc, char* argv[])
- {
- unsigned int cnt = 0;
- while (1)
- {
- usleep(1);
- if (++cnt > 10000) break;
- }
- return 0;
- }
复制代码cpp $gcc -g -O2 -Wall usleep.c
cpp $time ./a.out
real 0m4.249s
user 0m0.000s
sys 0m1.176s
cpp $time ./a.out
real 0m2.238s
user 0m0.000s
sys 0m0.664s
cpp $time ./a.out
real 0m1.975s
user 0m0.000s
sys 0m0.604s
cpp $time ./a.out
real 0m7.745s
user 0m0.000s
sys 0m2.296s
cpp $time ./a.out
real 0m3.088s
user 0m0.000s
sys 0m0.876s
|
|