开发者

Running time of program

The program listed below outputs 0 on the screen. Why? Does it mean that my computer is fast or something is wrong in the code?

#include <iostream>
#include <cstdio>
#include <开发者_C百科;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;
}


Not sure about this, you might want to examine the outputted assembly code, but since neither i nor j are actually used in the rest of the program, the compiler might not generate any code for those instructions.


Note that clock() doesn't return wall clock time, instead it has to do with the processing time in which sleep does nothing practically(it yields control to the operating system).

Try to remove sleep, and increase the loop count.


#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 ;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜