clock() - 循环前后的相同值

时间:2014-07-22 09:32:10

标签: c++

我有这个简单的代码:

#include <iostream>
#include <ctime>

using namespace std;

int main(int argc, char **argv)
{
    cout << clock() << endl;

    for(int i = 0; i < 100; i++){
        int k = i * i;
    }

    cout << clock() << endl;

    return 0;
}

我的问题是两个clock()调用都返回相同的值。如果clock()返回程序使用的处理器时间,那么执行100次乘法所花费的处理器时间是不是?就我而言,两个调用都返回0。

我在Ubuntu上,使用GCC编译。

1 个答案:

答案 0 :(得分:2)

未指定clock的分辨率;最早的 在我使用它的系统中,它是20毫秒(1/50 第二个,对应我居住的线路频率)。 现代Unix要求CLOCKS_PER_SECOND被定义为 1000000,但它仍然没有提出任何要求 实际的分辨率。和一百次乘法 一台现代化的机器,可能不会超过几台 微秒,如果那样的话。远低于典型的分辨率 clock

另外,当然,编译器可以完全优化循环,因为它对程序的可观察行为没有影响。