程序运行时间

时间:2010-07-10 20:21:08

标签: c++

下面列出的程序在屏幕上输出0。为什么?这是否意味着我的计算机速度快或代码出错?

#include <iostream>
#include <cstdio>
#include <ctime>
using namespace std;

int main(){
    int j=0;
    clock_t start=clock();
     for (int i=0;i<22220;i++){
         i++;
         j++;
         j+=i;
        // sleep(10);
     }

     clock_t final=clock()-start;
     cout<<final/ (double) CLOCKS_PER_SEC<<endl;

     return 0;
}

3 个答案:

答案 0 :(得分:3)

不确定这一点,你可能想检查输出的汇编代码,但由于i和j实际上都没有在程序的其余部分中使用,编译器可能不会为这些指令生成任何代码。

答案 1 :(得分:2)

请注意,clock()不会返回挂钟时间,而是与处理时间有关,而处理时间实际上没有任何作用(它可以控制操作系统)。

尝试删除睡眠,并增加循环次数。

答案 2 :(得分:0)

#include <windows.h>

SYSTEMTIME startTime;
GetSystemTime(&startTime);
WORD startmillis = (startTime.wSecond * 1000) + startTime.wMilliseconds;

// Do some stuff

SYSTEMTIME endTime;
GetSystemTime(&endTime);
WORD endmillis = (endTime.wSecond * 1000) + endTime.wMilliseconds;

WORD millis = startmillis - endmillis ;