我有以下代码:
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 ++。
答案 0 :(得分:4)
函数时钟返回程序消耗的处理器时间。在睡觉时,您的过程不会使用任何数量的处理,因此这是预期的。程序显示的时间可以来自clock
函数调用。
答案 1 :(得分:1)
clock()
不测量经过的时间(用秒表测量的时间),它测量程序在CPU上运行所花费的时间。但sleep()
几乎不使用任何CPU,它只是让你的进程进入睡眠状态。尝试修改sleep(10)
例如任何其他值sleep(1)
,您将获得相同的结果。