#include <stdio.h>
#include <time.h>
#include <windows.h>
void main()
{
clock_t start , finish;
start = clock();
Sleep(23);
finish = clock();
double elapsed_time;
elapsed_time = (finish - start) / (double)CLOCKS_PER_SEC;
printf("%lf\n",elapsed_time);
}
1、使用time.h中clock函数
#include "stdio.h"
#include "time.h"
int main(int argc, char ** argv)
{
time_t time1, time2;
time1 = time((time_t *)NULL);
//your code
time2 = time((time_t *)NULL);
printf("%f\n", difftime(time2, time2));
return 0;
}
2、使用time和difftime函数
以上这两种方式,处理测试代码时,结果都是0.000000,不是我想要的结果
用LARGE_INTEGER查看系统运行时间,运行结果可以达到毫秒级
3、使用LARGE_INTEGER
#include <stdio.h>
#include <stdlib.h>
#include <windows.h> // 注意,该功能需要调用windows.h
void main()
{
int i;
long sum=0;
double d;
LARGE_INTEGER Freg;
LARGE_INTEGER Count1, Count2;
QueryPerformanceFrequency(&Freg); // 调用API函数,这个API函数可是优先级0的函数啊. 得到系统计数器频率
QueryPerformanceCounter(&Count1); // 获取时间一
for(i=1;i<=500;i++) // 执行程序。
sum=sum+i;
QueryPerformanceCounter(&Count2); // 获取时间二
d = (double)(Count2.QuadPart - Count1.QuadPart) / (double)Freg.QuadPart * 1000.0;
// 得到的d为时间差,单位为毫秒。
printf("The time is %f, and the sum is %d\n",d,sum);
}