本文主要是介绍Windows环境是使用C语言计算程序或算法执行时间的不同粒度实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
运行环境:Windows,VC++6.0
需要微妙级别的童鞋直接看第三种!!!
1.精确到秒,计时单位为秒
头函数:
#include<time.h>
开始时间:
/* 长整形数据,time_t为time.h 中的宏定义,原型为 #define long time_t */
time_t start_time,end_time;
/*记录程序开始的时间*/
start_time=time(NULL);
结束时间:
/*记录程序结束的时间*/
end_time=time(NULL);
/* difftime 为时间差函数,可返回秒数 */
printf("程序执行时间为%f/n",difftime(end_time,start_time));
2.精确到毫秒,计时单位为毫妙
头函数:
#include<time.h>
开始时间:
double cost_time;
clock_t start,end;
start=clock();
结束时间:
end=clock();
cost_time=(double)(end-start)/CLOCKS_PER_SEC);
printf("程序执行时间为%f",cost_time);
3.精确到微秒,计时单位为微秒
头函数:
#include"windows.h"
开始时间:
LARGE_INTEGER nFreq;
LARGE_INTEGER nBeginTime,nEndTime;
double time;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&nBeginTime);
结束时间:
QueryPerformanceCounter(&nEndTime);
time=(double)(nEndTime.QuadPart-nBeginTime.QuadPart)/(double)nFreq.QuadPart;
printf("执行时间为%f微妙\n",time);
原理参见:QueryPerformanceFrequency用法
原文请见: Windows下利用C语言获得函数的执行时间
这篇关于Windows环境是使用C语言计算程序或算法执行时间的不同粒度实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!