C ++中的时间不正确

时间:2014-06-18 18:19:47

标签: c++ time

我有以下代码:

clock_t tt = clock();
sleep(10);
tt = clock()-tt;
cout<<(float)tt/CLOCKS_PER_SEC<<" "<<CLOCKS_PER_SEC<<endl;

当我运行代码时,它显然暂停10秒,输出为:

  

0.001074 1000000

这表明它通过了1074个时钟滴答和1毫秒,这显然是错误的。

为什么会这样?

我在linux下使用g ++。

2 个答案:

答案 0 :(得分:4)

函数时钟返回程序消耗的处理器时间。在睡觉时,您的过程不会使用任何数量的处理,因此这是预期的。程序显示的时间可以来自clock函数调用。

答案 1 :(得分:1)

clock()不测量经过的时间(用秒表测量的时间),它测量程序在CPU上运行所花费的时间。但sleep()几乎不使用任何CPU,它只是让你的进程进入睡眠状态。尝试修改sleep(10)例如任何其他值sleep(1),您将获得相同的结果。