C++计时的几种方法说明及例程

来源:本站
导读:目前正在解读《C++计时的几种方法说明及例程》的相关信息,《C++计时的几种方法说明及例程》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C++计时的几种方法说明及例程》的详细说明。
简介:1. 使用clock() 函数;2. 使用time() 函数;3. 使用GetTickCount () 函数;4. 使用QueryFrequencyCount () 函数。

1.使用clock()函数

头文件:<time.h>

clock()函数,返回“自程序启动到调用该函数,CPU时钟的计时单元数(clocktick)”

每过1ms,计数值+1

精度:1毫秒

#include<stdio.h>

#include<time.h>

intmain()

{

clock_tstart,end;//typedeflongclock_t

start=clock();

longi=1000000000L;while(i--){}

end=clock();

//#defineCLOCKS_PER_SEC((clock_t)1000)

doubleduration=(double)(end-start)/CLOCKS_PER_SEC;

printf("%fn",duration);//4.015

return0;

}

2.使用time()函数

头文件:<time.h>中

clock()返回公元1970.01.010:0:0秒算起到现在所经过的秒数。

即CalendarTime,日历时间

精度:1秒

#include<time.h>

intmain()

{

time_tstart,end;//typedeflongtime_t;

start=time(NULL);//等同于time(&start);

longi=1000000000L;while(i--){}

end=time(NULL);

longduration=end-start;

printf("%ldn",duration);//4

return0;

}

3.使用GetTickCount()函数

头文件:<windows.h>中

在精度要求较高的情况下,可以利用GetTickCount()函数,该函数的返回值是DWORD型,表示以ms为单位的计算机启动后经历的时间间隔(最大49.7天)。在较短的定时中其计时误差为15ms,在较长的定时中其计时误差较低,如果定时时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中。

精度:1毫秒,短时误差15ms

#include<stdio.h>

#include<windows.h>

intmain()

{

DWORDstart,end;//typedefunsignedlongDWORD;

start=GetTickCount();

longi=1000000000L;while(i--){}

end=GetTickCount();

doubleduration=(double)(end-start)/1000;

printf("%fn",duration);//3.922

return0;

}

4.使用QueryFrequencyCount()函数

头文件:<windows.h>

高精度计数器

精度:1微秒,误差不超过0.5微妙(精度为1000000/(cpu主频)微秒)

#include<stdio.h>

#include<windows.h>

intmain()

{

LARGE_INTEGERf;

QueryPerformanceFrequency(&f);//获取内部高精度计数器的频率

doubledFreq;

dFreq=(double)f.QuadPart;//获取计数器的频率

LARGE_INTEGERstart,end;

QueryPerformanceCounter(&start);//获取内部高精度计数器当前的计数值

longi=1000000000L;while(i--){}

QueryPerformanceCounter(&end);

//时间差=计数值差/频率(单位s)

doubleduration=(double)(end.QuadPart-start.QuadPart)/dFreq;

printf("%fn",duration);//3.969499

return0;

}

提醒:《C++计时的几种方法说明及例程》最后刷新时间 2024-03-14 01:03:53,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C++计时的几种方法说明及例程》该内容的真实性请自行鉴别。