簡體   English   中英

程序運行時間

[英]Running time of program

下面列出的程序在屏幕上輸出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;
}

對此不確定,您可能需要檢查輸出的匯編代碼,但是由於在程序的其余部分中均未實際使用i和j,因此編譯器可能不會為這些指令生成任何代碼。

請注意, clock()不會返回掛鍾時間,而是與處理時間有關,在處理時間中,睡眠實際上不執行任何操作(它將控制權交給操作系統)。

嘗試消除睡眠,並增加循環計數。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM