C语言中的测量程序运行时间的函数是什么?怎么用?高手指教,急!!!
C语言中的测量程序运行时间的函数是什么?怎么用?
[解决办法]
应该没有专门的函数用来测量程序运行时间,一般的做法是获取程序开始运行的时间和运行结束的时间,两者之差便是。
time.h中的time函数获取系统当前的时间,用法如下:
time_t tm;
time(&tm); //其中tm就是当前系统时间,精确到秒
windows下面的有mmsystem.h中的timeGetTime函数,windows.h中的GetTickCount函数,其用法都一样,都是获取系统当前时间,只是精确度不同而已。
当然精确度最高的还数windows.h下的QueryPerformanceFrequency和QueryPerformanceCounter两个函数的组合来计算时间精度。其用法就稍微麻烦些:
LARGE_INTEGER nFreq;
LARGE_INTEGER nBeginTime;
LARGE_INTEGER nEndTime;
QueryPerformanceFrequency(&nFreq); // 获取时钟频率
QueryPerformanceCounter(&nBeginTime); // 获取时钟计数
............. //在这里执行些任务
QueryPerformanceCounter(&nEndTime);
nEndTime.QuadPart-nBeginTime.QuadPart/nFreq.QuadPart就是两次的时间差。
[解决办法]
更正一下:
应该是(nEndTime.QuadPart-nBeginTime.QuadPart)/nFreq.QuadPart
[解决办法]
呵呵
好详细啊
学习了.
还有其他方法吗?
[解决办法]
这个你看可不可以
#include <stdio.h>
#include <time.h>
#include <sys/timeb.h>
int main()
{
struct timeb tp;
struct tm * tm;
ftime ( &tp );
tm = localtime ( & ( tp.time ) );
printf ( "%02d:%02d:%02d:%03d\n ", ( tm -> tm_hour ) , ( tm -> tm_min ) ,
( tm -> tm_sec ), ( tp.millitm ) );
}