我在OSX中使用clock()时遇到问题 . 我只想显示自程序启动以来经过的时间 . 问题是,当我通过CLOCKS_PER_SEC划分clock_t结构时,我得到了奇怪的结果 .
运行我的程序10秒将显示1.0 . CLOCKS_PER_SEC在我的系统上设置为1,000,000 .
以下是我的代码示例:
//startTime = clock() at the start of the program
//This is called in each program loop
elapsedTime = (double)(clock() - startTime)/CLOCKS_PER_SEC
如果我正在做elapsedTime * 10,我会在几秒钟内得到准确的值 . 在程序执行期间,我没有任何睡眠或等待 .
任何有助于了解正在发生的事情的人都会非常感激 .
编辑:
好吧,我纠正了演员阵容,但它没有改变这样一个事实:如果我运行程序10秒钟我得到1.0,1秒是0.1 . 这是我不明白的 . 我的CLOCKS_PER_SEC就像一个CLOCKS_PER_TEN_SEC .
2 回答
我认为你的演员是在错误的地方,所以你得到一个整数除法 . 试试这个:
编辑:
另请注意,在大多数系统上,
clock()
测量CPU时间 . 也许你没有像你想象的那样使用尽可能多的CPU时间 .将你的演员阵容移动到第一个括号内:
现在
clock() -startTime
变为double,强制CLOCKS_PER_SEC也是一个浮点值,你得到浮点结果 . 否则,它是一个整数除法,并且只得到整数结果 .