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