[英]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.